This may sound complicated, but it works (I use Linux and have the good fortune to be the administrator of our companies web servers which helps)...
I use Zend Studio, Subversion (version control), local server and remote dev/live server.
I have a local copy of my applications on my laptop in a personal area - sat /home/sturnbull/webdev/<application> which is also under version control.
I then FTP my new/modified work to my local server on my laptop. If everything works I commit the changes to Subversion (using Zend Studio) and the FTP then work to a remote production server which is running the identical setup (as far as pos) to my live server.
Assuming all went well, I then FTP the same work to the live server.
The beauty of Subversion and Zend, is that if the changes bring about bugs in a day or two, the Subversion support in Zend lets you easily compare releases, roll back and in no time have everything back to how it was before...
Subversion also allows you to Branch out if making major changes etc, all within Zend to make things graphical and easy to use, you could do the same on the command line as well.
Cheers
Steve