I use capistrano for deployment, I mainly like it because I can set up a VPS on any service and have it clone the repo from git, config is almost identical between applications depending on the complexities of each and it can be heavily modified for the clients needs as well.
If I'm just showing off work to clients and pushing things to a staging/dev server, a lot of the time I'll use grunt-rsync or grunt-sftp to push everything up at the end of my `$ grunt produce` task. For site deployments, I prefer Capistrano since it's dead simple.