My best dev tools...Spaces+Expose set up with hot corners (mouse top right = all windows on desktop, bottom right = all desktops, bottom right -> top right = all windows on all desktops), for some reason people aren't comfy using multiple desktops, and the mind boggles.

Also, I grew up on Ubuntu (graduated to OSX as a 'everyday' OS), so I run my dev set up (terminals, vim, svn, web browser) on one desktop, in a virtualbox instance. The benefit is that...I can have multiple virtualboxes suspended at exactly the last place I was at in development (terminals and desktops).

The benefit of Ubuntu should be obvious...apt-get absolutely rocks for quickly installing libs and programs you need, or getting vim colours, etc. etc., has sensible developer defaults out of the box. All our production stuff runs on Ubuntu too, so, it makes a few subtle differences between dev/live disappear.

To me, I treat an ubuntu VM as my IDE. But that is just my best way.