Vim, vim, vim, vim, vim, vim, vim, vim, vim, logging, bacon, irb. I try to keep large methods I'm actively editing on the big windows and reference material on the smaller ones. I also arrange them physically to match the control flow--the deepest methods in the stack live to the left, and successively higher ones live to the right, up to the controller and view for MVC. I usually have an IRB session open to test new ideas, one window for running the test suite, and one to watch the logfile or run the server.
On the other monitor, usually docs, whatever I'm building, and more docs. On a single 24" display (at work), I usually fold the docs over my bacon/irb terminals. I run 6 workspaces in Openbox. Almost everything has a hotkey.
[edit]
Folks at my office know me as "that guy with all the terminals". I think part of it is that my working memory is not fantastic, and that I'm a really visual thinker. Having everything laid out in space really helps me keep track of a complex, modular system.