I've used the .NET CLR Profiling Services to find bottlenecks in code, such as suggested by this article (which includes an implementation of a CLR Profiler):
http://msdn.microsoft.com/msdnmag/issues/01/11/NetProf/
But the nice thing is, Whidbey has a built-in profiler available, with nice graphs and reports built in - check out this article to learn more
http://msdn.microsoft.com/msdnmag/issues/04/12/EnterprisePerformance/default.aspx
RSS
INFO AND CODE
MORE INFO