How could I create multiple private sites within one Drupal site?
This seems like a perfect use case for Organic Groups.


  Enable users to create and manage their own 'groups'. Each group can
  have subscribers, and maintains a group home page where subscribers
  communicate amongst themselves.


I'm not going to go in depth with setup or anything, as OG is a beast of a module, but the benefits are immense, and should allow you to do exactly what you need. It's the same module that provides the groups.drupal.org functionality :)

A quick Google search will provide a wealth or information, as will a browse of the organic-groups tag.

Also check these out for a brief overview of OG:


Organic Groups for Drupal 7 (Lullabot)
An Introduction to Organic Groups with Drupal 7 (YouTube/Lullabot/Drupalize.me)