I use Visual Studio a lot, as it's the one I always encounter in work environments. There are some tasks where you do really need to use it, for example COM development, but I guess I'm so acclimatised to Visual Studio that I don't see its short falls.
But when I'm working on a project I want to build on Linux as well as Windows, I now use CodeLite. I did start off with Code::Blocks, but I find the way it manages workspace and projects a bit odd for some reason, whereas CodeLite works for me.
The only issue I did have with Codelite was that it didn't have a GUI for displaying the disassembly output. But this shortfall was rectified in the recent release (version 5.2)
I'm also a fan of Visual Studio and tend to be using more and more often lately. Lately I have been doing a lot of C# and C++ coding so it works well for me.
I also like a lot of VS's debugging features (Though other IDE's probably have them also) like the auto window, changing values on the fly, hovering to see the value, setting the next statement to run, annotated disassembly, and one of my favorites is the Code Map which is a Visual Call Stack ( http://msdn.microsoft.com/en-us/library/vstudio/dn194476.aspx )
Another thing for me that makes VS2012 my favorite IDE is the Visual Assist extension. If you have the $99 dollars ($49 for students) to spend and you use VS I would highly recommend checking out the free trial. Though one downside is it only works with paid versions.