One of the questions that came up during my ASP.NET AJAX webcast last week (recording available here) was how to make sure controls you have already written are compatible with the UpdatePanel. There are a few things you need to do to your existing control. Eilon Lipton talks about it here.
If you are building a control from scratch, then you might want to look at:
Adding Client Behaviors to Web Server Controls by Using ASP.NET AJAX Extensions (extenders)
Adding Client Capabilities to a Web Server Control by Using ASP.NET AJAX Extensions (custom control)
The two links above show you how to do it from scratch. However, the ASP.NET AJAX Control Toolkit makes it even easier with helper classes, templates, etc.