I can't help but praise the Visual Studio 2005 debugger. The new browsable tooltips that allow you to quickly drill-down into an object in the current context is amazing. The Autos and Locals windows are old standby's but, for me at least, I always seem to have to resize the column divider between the variable and it's value.
Sometimes the value is a long string, in which case there's never enough room because Autos, Locals and Watches are on the bottom left while the Call Stack, Immediate window, output, Threads, Processes and Memory are on the bottom right. Maybe I should merge them all into a single window - unfortunately that would mean I'd lose context when switch frames on the call stack (context being the Autos window). Will have to consider this more later.
With the browsable tooltips, if the screen is wide enough, then there's enough space because they automatically resize themselves. WOOHOO!
The only thing that I'd add is a way to copy a string literal in it's unescaped form. I often find myself copying a long path (usually in the temp folder - on XP this is usually something pathologically long like c:\documents and settings\firstname.lastname\local settings\temp\...., thank goodness Vista shortened this up) into a text editor to examine the contents of a file. Fortunately ultraedit, imho the coolest editor on the planet, ignores the double-backslashed paths (or perhaps the win32 function it passes the path through ignores them). So maybe this isn't really a problem but I had to have at least one gripe in this post so there it is.
Another gripe is the way the debugger deals with attaching to multiple processes. The concept is very cool, especially if you're porting an app, but when I break into 1 process the other is paused! Not exactly what I intended. Easily remedied by attaching from another instance of Visual Studio.