Since user-generated groups are somewhat newer to most business-oriented community platforms I'm guessing this might be a little more difficult question than others to get a lot of responses. So I'll offer a couple thoughts to maybe get people thinking.
It sounds like your community is up and running with a strong member base. That's good because that must mean you have a lot of good interactions already going. Whereas if you were just starting out you might want to limit or not deploy this particular element right off the bat because it's important to just get conversations going in the main buckets/sub-communities so those don't end up looking void of content while all the convos are taking place elsewhere. Does that make sense? Basically, if you have a lot of new people joining you want them to easily see discussion threads vs. having to navigate to various groups and join them, etc. before participating. It's one of the reasons we haven't really widely deployed the groups feature for Clearstep (but look for that to change now that we have some good activity across the board).
On whether you should give everyone the ability or just a select group - that has dependencies too. Ultimately you want people to share and connect with others of similar interest and groups undoubtedly can further that goal. However, if suddenly there's 300 new groups (I'm exagerating here) because everybody created their own then maybe it doesn't end up achieving your goal because it maybe makes it more difficult for people as they're not sure to join group A or group B because A & B are so similar. An idea to avoid that scenario might be to have a group request/approval process. Another thought is to use that as one of the incentives in your points/rewards system for contributing to the community itself. When a person reaches a certain contribution level they get that right.
Anyway, just a few thoughts to maybe spark some additional ideas.
I've been thinking about this recently. I've seen plenty of communities that have 1000 groups of 2. I couple of ideas that I've been think about to prevent the 1000 groups of 2.
1) When a user starts creating a group aggressively auto-suggest an existing group or an existing community based on what they've put in the group description and group tags. This could avoid a doubling up of a group because many users don't bother searching first. You could use your More Like This Group function before the group creation process is complete.
2) Require that users earn a certain number of participation points before they had the create group rights (Adam's idea above). It could be annoying in some cases but it would be a decent filter for people who just joined the site, create 10 groups and never come back to the site. You really want the people creating the groups to be willing to manage and curate the group. You don't want other community members to joing the group and be annoyed if they never get approved or if the group leader is not responsive.
3) Group approval. LinkedIn started out this way with their groups. It wasn't a bad idea because someone could claim an identity like Jive Employee Group even if they weren't really a Jive employee or affiliated with Jive.
4) System created groups based on explicit grouping criteria like City, State or Region. If your site has some cleanly delieneated properties that could be used to segment groups then ask for that info on registration and suggest groups to the user (e.g. Red State or Blue State).
5) Better group stats maybe some sparklines on how much activity, how many users, and group ratings. This would help users decide what groups to join if there are multiple groups named similarly.
6) Don't launch with Closed/Private groups right away or make that permissions something that requires an approval on a case by case basis.
7) It would be nice to have a merge group functionality in case to parallel groups develop and then decide they would like to merge. Have a community manager actively monitoring group creations and suggesting merges before too much content is developed.
Group v Space features that could also help:
1) One problem I've been having is when a Document or discussion might be worthy to have in both a space and a group. I'd love to have an alias action that would still keep the object in a core space but easily create a link discussion or link doc in a group space. This would at least expose the activity in both places. I'd like to have more affinity between a Space and Group if they are related.
2) I'd like a widget that I can put on any Space landing page that pulls group Content from related groups.
3) I like the Linked in Group icon listing on the primary profile. It gives you an idea of the personal interests of the user if you can easily see all of their groups. Right now you have to drill down fairly deep to get a users group info.
It has been 17 months since you posted your question about allowing users to create groups within your 20k person community.
What did you ever decide and how did it go?