Structure lets you group by most standard JIRA fields, custom fields provided by JIRA and other issue aspects:
Standard fields: Affects Version, Assignee, Component, Epic, Epic Status, Epic/Theme, Fix Version, Flagged, Issue Type, Labels, Priority, Project, Reporter, Resolution, Status, Sprint.
JIRA custom fields: fields that give you a list of values to choose from, such as radio button, list single choice, checkboxes, user picker, labels, select list.
Text attributes: built-in and custom text fields.
Portfolio parent link: you can group issues by their parent issue as defined in Portfolio for JIRA.
Issue links: you can group issues by their linked issues. You can select link type and direction, so that, for example, you can group issues under their respective blockers (issues that block them).
The fields that cannot be grouped by are 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.