Hosting your blog with Github's [Pages service](pages.github.com) is free and allows custom domains. To deploy you simply push your repository to Gihub.
This is a great way to host a personal blog, or even a multi-author blog, where contributions can be handled with pull requests and commit access.
Like Github Pages, Heroku is also free, allows custom domains, and uses a git based deployment workflow. Heroku is a bit simpler to use and your blog repository remains private.
If you have web hosting service you can probably deploy with [Rsync](http://en.wikipedia.org/wiki/Rsync) which is brilliantly fast, syncing new and changed files through SSH.
If your host doesn't offer SSH access, and you're looking for one that does, check out [Dreamhost](http://www.dreamhost.com/r.cgi?109007) (I've been a happy customer since 2005).