You can see and use contact-groups on your iOS-Device, you can even filter by them in the Contacts App, but you cannot create them or assign contacts to them.
With Contact Groups App however you can add groups, delete and rename them, and you can add contacts to them and remove them.
You can create new contacts directly in the address book and group of your choice, update contact details, delete contacts and restore them in your preferred group, even in another address book.
Group assignments can be managed for the group (organise-button top right) or for a single contact (left-swipe).
Groups can be duplicated and then modified.
For every contact you can choose to order it by name or by company (this is not supported by Exchange-address-books).
Groups and group-memberships are stored directly in your address books (local, iCloud, Google, Yahoo, MacOS Server, …) and all your remote address books are synchronised with every connected device. No extra data is created or stored.
Exchange folders are shown as groups in iOS, but they are folders, not groups. So you cannot assign contacts to them.
In Outlook you use categories to group contacts and you can create Exchange-contact-groups or contact-lists, but unfortunately these categories and groups are not shared with iOS.
Contact Groups App allows you to create new contacts in exchange folders and move them from one Exchange-folder to another.
Google contact groups and Yahoo contact lists
If you create groups with the Google web-app or if you create lists with the Yahoo web-app, you will not see them on your iOS-device. They are not shared with iOS.
However, with Contact Groups App you can create groups and assign contacts to them and these groups and assignments are synchronised correctly between all Apple-Devices.