Last year around this time I posted about the comming need for multi-threaded applicaiton architecture. Just recently Caleb sent me an aritcle by Sam Gentile on Parallel Computer in .NET that communicates the need/opportunity better.
On the ASP.NET side of things, IIS is already multi-threaded so you get a lot of concurrency benefits automatically. But in high-volume request environments, you may want to free up your threads when doing I/O. Jeff Prosise has an article on Asynchronous Pages, HTTP Handlers, and Modules that raises awareness of what's possible there.
In WinForms, I've had several people ask me why background threads can't update controls on a form. Craig Neuwirt of Improving covered this topic at the Dallas C# SIG meeting a few months ago and showed off his Facility in Castle to handle if invoke required logic transparently through inversion of control. Craig's source code demonstrating the difference in complexity between handling the delegation explicity vs using Castle is available here labeled Containing Complexity, mismarked as May 2006 instead of 2007.