I'm learning about Icicles, which is an Emacs mode to more efficiently complete text and switch between buffers.
I've been a big fan of iswitchb since switching to it about 5 years ago, but it's being stretched with these Ruby on Rails projects that I'm working on. Rails requires you to switch back and forth between large numbers of files. I have 12 Emacs windows open, and have different source files in each one, yet I still find myself doing a lot of switching between buffers.