Sometimes you can backup your site using your hosting control panel. The best solution for me is to use SSH and a terminal client like putty to connect. Then I zip or tar the site using commands like:
zip -r filename.zip foldername
Then I dump the database with mysqldump.
Examples:
http://www.thegeekstuff.com/2008/09/backup-and-restore-mysql-database-using-mysqldump/