Structure lets you group by most standard JIRA fields and custom fields provided by JIRA:

The fields that cannot be grouped by are text strings (like comments), dates and numbers.

Groups can be nested. For example you can take a list of issues and group them by fixVersion and then by Assignee. Thus you will see the existing fixVersions on the top level, Assignees on the second and then the issues themselves on the third, grouped accordingly. If you enable editing via Structure in the generator settings, Structure can update the fields by which the issues are grouped when you drag-and-drop issues from one group to another.