This is the most complex of all the relationships, but it is very useful if you need to have multiple options on both sides of the relationship.
If we take our Project owner relationship, but instead of a project only having one owner, if we change it to allow it to have multiple owners, then we would need a many to many relationship.
Each project can have many owners, and an owner (user) can be the owner to many projects.
When using this data in your portal, each side of the relationship will have a list of the opposite type. I.e. users will have a list of owned projects and projects will have a list of owners.