I use two monitors and I solved this problem by using multiple desktops. Every desktop has one of my "tasks". When I want to see what other window is doing, I move to that given desktop. This way, each desktop has one "context" - Emacs and a development server, a browser and another window to the same development server (screen is your friend), one with various "social" things - IM, Skype, IRC, Twitter - and others with assorted activities (managing servers on Amazon, remote upgrading my mom's computer (Unity is very grandma-friendly) and so on. If I'm ever lost, Super-S brings me everything up in a simple and easy way.
My two problems with Unity: It's too easy to get to get to the launcher when I want to hit the browser's back button and all my Super-related Emacs shortcuts had to be relocated. Now I need a Hyper key.