Debugger, F# Language
The debugger has greatly improved. You can have greater control over your
breakpoints, including the ability to label them and even import and export
them. (I'm not sure when you'd need to import and export them, but I imagine
there might be the occasional need for it.) The thread debugging window has
been improved; this is good because the previous one kind of stunk.
Also, the watch windows have an interesting improvement. Previously you could call functions in your watch windows. That's an important feature, but it can also create problems if those functions modify the state of your program (change variables, and so on). That can totally screw up your debugging session. Now the watch window includes an icon that will warn you that refreshing the value will require other threads to run, which could cause side effects.
There's also improved support for debugging parallel applications. I don't have room here to describe this feature in detail, but consider this: Today's processors have multiple cores, which you can use for creating parallel applications. Visual Studio now gives you more ability to debug such applications.
Microsoft is really pushing its new F# language. I have no complaints there. This language now ships with Visual Studio, instead of being a separate download. If you're interested in a modern language based on some really cool languages (ML and OCaml), then you might want to check this out.