Hi,
you can
clone registration form webpart (in ~/CMSWebParts/Membership/Registration folder) and add a combo box where the group admin can set roles. In the code behind you can use API to assign user to appropriate groups/roles when the user is saved. You can also set the emial in the code as well.
To make this webpart visible only for group admins you can set Visibility property to true or false. You can create for example a
custom macro in which you can check if the current user is a group admin or not.
Best regards,
Ivana Tomanickova