Yeah, I basically back up the entire site (database and files) and then put it either on my testing server or within another folder on the clients website called "test" or something. Then you simply create an additional database (uploading the old content into it) and point your config file to that. Then you are free to amend the duplicated files, without effecting the currently running website.
That way, if things are added to the existing database - whilst you are working on the new site - you simply point to it when uploading the new files. Obviously if you need to create new fields/tables, you can export these and upload to the old website DB.