ACP panel with a list of subforums. Pick which subforums will be joinable. Assign moderators to approve/deny requests. If no moderator is assigned, the group membership is open and joins are automatic.
User Profile Page has a list of joinable groups with join and leave buttons (as applicable). Moderator names for each group are listed.
Moderators get a notification when there are new requests. They have a management pane that shows both the current outstanding applications as well as the current membership, with buttons to boot those users.
ragtek started work on a similar project, but it doesn't have the moderator functionality. I'm open to him or anyone else finishing it as I've outlined above. Let me know how long you think it would take and what rate you'd need to do the work. I'd prefer the add-on were turned over for public use after completion.