This is my own tutorial so I don't forget for the future. Stole directly from http://drupal.org/node/297496 with modifications for my useage. I currently use dreamhost and enjoy their SSH access to the servers my sites are hosted on.
UPDATE: I now added Drush to my SSH access so you only need to run one command to backup and update.
The following is for those with limited SSH or access to the host only via web/ftp.