How create Group Blogs based on user created Groups

Use a multisite. There are no good reasons not to do that. For the groups I would use two custom tables:

  1. A group table for the description, maybe an image path/ID an a group ID. You could also use a custom post type on the main site for that, but it is easier to optimize the queries for a custom table.
  2. A group_users table to associate user IDs with group IDs. You could the usermeta table, but again – performance.

Whenever a user creates a group, create a new blog. WordPress has internal routines for that, it will set up all the necessary tables for you, and you can even control the plugins and the theme that are active or available for that blog.

I would use the main site just to list the blogs.