I use the excellent Codetek VirtualDesktop Pro. Without it I think I'd have gone totally insane ages ago.
Some days, however, I think it contributes to my encroaching insanity. Nobody should have this many apps and windows open at one time.
(To clarify: each "desktop" I use for a different task/project. What invariably happens, since much of my work is "real time", I end up waiting for feedback, or I get interrupted from one task to work on another et voila! Ten workspaces open at once... Tasks include actual work, blog entry writing, email & IM, research & reading, etc... )
It is seven PM and I need to "close" each one of these open tasks tonight. Whoohooo! Someone come and take me away, heeheehoohoohaahaaaa...