How do I require the user submitted content to be approved before it is published? I need to have content that is submitted by users of a certain role to be approved by an administrator before it is published. I thought this functionality was build in already, but I just can't seem to find where it is.
You may be interested in the Workbench module combined with Workbench Moderation.

From the Workbench project page:


  Workbench provides overall improvements for managing content that
  Drupal does not provide out of the box. Workbench gives us three
  important solutions:
  
  
  a unified and simplified user interface for users who ONLY have to
  work with content. This decreases training and support time. 
  the ability to control who has access to edit any content based on an
  organization's structure not the web site structure 
  a customizable editorial workflow that integrates with the access control feature
  described above or works independently on its own
  


From the Workbench Moderation project page:


  Workbench Moderation adds arbitrary moderation states to Drupal core's
  "unpublished" and "published" node states, and affects the behavior of
  node revisions when nodes are published. Moderation states are tracked
  per-revision; rather than moderating nodes, Workbench Moderation
  moderates revisions.