Visual Studio 2005 has added a feature called Tracepoints and currently it's easily my favourite of the new stuff. When you need it, it saves a huge amount of time.

When you want to add tracing functionality that's very specific to the problem you're trying to debug to some piece of code then it's a real pain to go and add extra Debug.Write or trace statements all over the place and get all the necessary components rebuilt. This is doubly so if you don't happen to have the source for something you need to trace, just a .pdb file. Never fear, tracepoints are your friend. You can read more in depth about them here, but essentially we're talking about adding arbitrary trace statements that can contain rich expression evaluations simply using debugger configuration. No source changes, no rebuilds.