How to make a composite content type I would like to create a content type that has some unique fields but its other fields are references to other existing nodes (not a parent-child relationship but many to many relationship). 

I have looked in entity reference module or field collection? Is there another way of doing this?

For example I have a synthesis report made up of smaller topics. I want this report to have a name and author but then it needs to reference multiple of these smaller topics (which are a content type of their own). 

I could maybe make a Taxonomy term for every synthesis report?
The simplest way is to use the Entity Reference module. You can add fields to your content type which are a reference to other entities, like taxonomy terms, nodes, etc.

Note:  You can combine it with field collection, but you need to understand that a field collection is not the same thing. A field collection lets you group fields so you can re-used them. For instance if you have multiple addresses, you can create a field collection with street, zipcode, city, etc. But in itself, it's not an entity. Entity reference lets you point from one entity to another.