Which debugging feature of the Visual Studio IDE do you use the most. I agree that it depends on the scenario. But it turns out that people tend to use some features very often (eg Stacktrace) and some very rarely.
Apart from breakpoints and step in/out and run to cursor, I mainly use (auto)watches, stack trace, and the watch under mouse pointer. I think I use the latter the most.
For a "hidden" feature, I'd vote for debugger visualizers. Once I wrote an application that heavily manipulated bitmaps. I had some trouble, and wrote a visualizer to display the bitmaps in the memory and zoom on them. It was extremely useful (and easy to write).
Another useful thing is conditional breakpoints. I can't recall the exact situation, but I remember I was happy to find out how versatile they are.
And, of course, edit-and-run without recompilation is very nice.
Immediate window. It allows you to call code, query and change properties.
Together with this library, I use the output window a lot. It's nice to be able to double-click on any log output and be taken straight to the line that produced it.
Other than that, the Autos window, breakpoints, Step In and Step Out (SHIFT+F11). And I quite often use the Disassemby and the Register windows.
Pseudoregisters, not necessarily "top", but handy. Read more here.
"Attach to process..." is very handy
also watch, breakpoints, step into member.
less known: [DebuggerStepThroughAttribute]. It causes VS debugger to skip method or property when doing step into member.