If you happen to be using Ruby, then Capistrano (http://www.capify.org/) is awesome.
I imagine there are similar solutions for other languages.
Worst case scenario, you can roll your own. A very basic trick is to use symbolic links on your server - deploy the site to a new folder, and simply point the symbolic link to the new folder when you're done.