Visual Studio is my favorite IDE thus far, and I've used it (every version since version 6, which I thought was very, very lacking), XCode (quite nice; comes in a close second), KDevelop (seems okay, haven't used it too much), emacs (holy keyboard shortcuts, Batman), NetBeans (it's...okay), Eclipse (I really, really hate it), a few random PHP IDEs, and, uh...Notepad++ (mostly for QuakeC) and nano (mostly for when I'm feeling masochistic).
My favorite part about Visual Studio is that it generally gives you a decent amount of assistance in both form and API documentation without being a complete shithead about it like Eclipse and NetBeans can be (those two will add in closing braces and various other elements and you can't turn that behavior off in some languages). XCode is actually a bit better when it comes to helping you fill out function calls, at least with Objective-C (basically, you type the function and you can tab between parameters), but it's a bit worse when you can't seem to remember every last character from the function name. It doesn't have a nice scrollable box like the newer Visual Studios do.
Visual Studio is also great for its extensibility. Not so much with the fairly trim Express editions, but the higher end editions let you snap in just about anything. You can get extensions to add support for all sorts of version control systems, database systems, entire languages, you name it. The fact that it works rather well with dual monitors is very nice as well. Oh, did I mention that I love its debugger? If not: I love its debugger. It hasn't failed me yet.
XCode has come a long way since its original inception as Project Builder, though. After I (mostly) got over its unusual interface I found myself starting to like it a little. I haven't done a whole lot with it as of yet (I fiddled with a GLQuake OS X port back in the Project Builder days and am working on an iOS project now at work) but it's starting to grow on me now (so is Objective-C, which has really odd-looking syntax for a C-based language).