Subprojects allows you to create hierarchy of JIRA projects. Once you have created project hierarchy you can use new project picker tree to select a project on new issue dialog, you may use project in subprojectsOf() JQL to query issues or use subprojects dashboard item to add high-level view of project hierarchy into any dashaboard
How you will group your projects is completely depend on your organizations. Here some different grouping alternatives:
You may create a group for different project categories, for example "Service Desk Projects", "Business Projects", or "Software Projects"
You may create a group for different organizational divisions, for example "HR Projects", "Finance Projects"
You may create an Archived category for inactive projects
You may create categories for internal projects or customer projects
You may even create multiple child projects for a complex project and group child projects under the main complex project.
You may create different groups for "Hardware Projects" and "Software Projects"