Or you could set all new post to 'unpublished' then set it to 'published' after reviewing it. This way you don't need any other contrib module installed.
This is the method I have used for one of the websites I run. Works well. You can also use actions/triggers to make drupal send you an email the second you have new content to approve.
Moder8 module is best of the suggested ideas. This is better because you can see even the nodes that are edited at a later date after publishing and then can approve the changes. The drawback with the publish/unpublish step mentioned above is the author can edit their articles later after it is published. Else, you will have to remove the "edit own content" permission which would mean the author will not be able to edit if he makes a mistake. I suggest going with moder8 module.
Yup, this is a pretty wise move. Better than what some people do - create a duplicate JUST for staging!!