How do I control user generated contents published state?
There is a module for that™: Workflow module!


  The workflow module allows the creation and assignment of arbitrary workflows to Drupal node types. Workflows are made up of workflow states. For example, a workflow with the states Draft, Review, and Published could be assigned to the Story node type.


In your case you only need to workflow states: review and approved/public.