What are you looking to stage? Content or functionality?
I'm absolutely for having multiple environments available for testing functionality, but I don't see value in duplicating complete content sets for an entire environment. In addition to the pain and time involved with setting it up or synchronizing it, you have the cost for storage. In the enterprise, 1Tb+ environments are not all that rare.
I typically look to configure the system in a consistent way in the staging environment, but then use subsets of the content specific to what you are testing.
For testing applications, if everything is provided as a feature/solution then it is easy to test the deployment in multiple environments.
With regards to the tools mentioned above, I have had a lot of very good experience with AvePoint for moving/migrating content. It has been very effective for me. I have not used it to migrate applications though.