Although this is an old post, it still seems relevant (despite the several workarounds offered in the replies). So I thought I would add my own workaround as well.
First, the challenge is not necessarily creating groups from addresses that are already in your contact list. That is about as straightforward as it gets. The only slightly non-intuitive step is that you have to open a separate app (Contacts) rather than doing it all through the native Mail app.
That being said, I find the biggest challenge comes when I have to create a distribution list from a large group of email addresses which are NOT already in my contacts list. For instance, I regularly have to communicate with large groups of people for a given project, and I may only interact with them on a group basis, and only for a limited amount of time. I would prefer not to have to bloat my contacts list with addresses from virtual strangers, but I would still like to be able to type in a simple group name and have those addresses populate automagically. Here is my solution to this problem:
Step 1. Get all the email addresses in a semi-colon delimited list (for example bob@email.com;steve@email.com;jake@email.com, etc).
Step 2. Open the Contacts App
Step 4. Add a New Contact
Step 5. Name the Contact the name of the group you wish to use (I use the same for both first and last names, for example NATO, NATO)
Step 6. Paste the list from above into the email section of this contact.
All of the email addresses will populate whenever you call up this contact, just like it would if you called up a group.
I haven't tested this with massive lists (>100), but it works for what I do.
Good luck!