Because most people come to working with Drupal professionally through teaching themselves, everyone seems to have their own methodologies for building sites using the framework. I've advocated working live off of remote development servers for a long time which the belief that it prepares you early on for any hiccups that may arise relating to the nuances of your hosting environment, but then today rethought that approach. The problem was that Media Temple, who is generally pretty reliable, got very very slow with mysql access speeds and I began to get frustrated building out a client's site at tricycle speeds.
So, I rolled up my sleeves and prepped my trusty Macbook Pro to help me finish up development on this site. For this, I needed a Linux-Apache-Mysql-PHP stack installed (LAMP) and decided to use a software package called MAMP - which is very easy to install. After futzing with the php.ini file to get things up to my preference (upping the upload max file size restrictions etc...) I moved the site I'm working on off of our dev server by tarballing it and then using the WGET command in shell. Note: WGET apparently doesn't ship with macs so you'll need to install it - I found a package and instructions from statusq.org very helpful.
In just a few minutes (our internet connection is quite fast), I had untar-ed the package containing my site's files and database and repointed the settings.php file to the new localhost database location and was off to the races - I can't believe how fast work has gone this afternoon on this project... Up until you need to show a remote client or project partner your work, this approach is lightning quick and extremely fun :)