As several other people have said, which IDE you use or if you use one at all is heavily dependent on the language your developing in, the scale of the project, and the platform your working on. Although I've never encamped with either the Vi or Emacs guys I do use a number of other editing tools in roughly this language breakdown:
C#, or anything else .Net: Visual Studio. There is no serious competition, the CLR languages beg for syntax highlighting, refactoring, and advanced file management. Thankfully Microsoft got this one right and the Express editions are an incredible value.
C++: I haven't touched it in a while, but I would typically view the code in Visual Studio, but compile through batch files, which had a lot to do with the eccentricities of the particular embedded platform I was working on.
Python: I recommend Stani's Python Editor if you need something with bells and whistles, but Python is so direct in its structure that I usually end up just using Scite. It does everything you really need in a Python editor.
SQL: Notepad++ or, if your doing heavy lifting, any supported editor + SQL Prompt.
Java: I hear good things about Eclipse, but Java is evil so I don't touch it.
PHP, Perl, Javascript, BASH, or most other languages: Notepad++ on Windows, Scite on Linux.
Although switching between all these IDEs can be troublesome, especially when a feature you love in one is missing from another, the benefits are to be found in using the best balanced tool for the job your doing. I switch IDEs all the time as my needs vary and I would encourage others to as well. Having worked on a limited number of projects, of limited scale, on particular platforms I hardly know all the use cases and I'm sure there are plenty of other situations and code editors out there that pair up in unique and wonderfully functional ways.