Handling staging and live Wordpress sites


I would welcome your advice.

I have my Wordpress sites hosted with Dreamhost and the live site is http://www.dermotmurphy.com but I am developing a new version of the website at a staging server subdomain http://www.dev.dermotmurphy.com

What I would like to know is what is the easiest/best way to replace the live site with the development version AND still be able to make changes and test plugin on the development site and THEN preform future updates to the live site once I tested of approved future changes?

I have read about copying databases and editing code and also I have seen a few plugins that might help with this but I am really confused and want to do it right first time.

Please can you give me some advice?

Thank you