In the past I have used the Similar by terms module, It provides an amazing feature to display the related content in a block view which can be placed in a node view to see similar content to that node. Here similarity is subjected to the taxonomy terms only.
Recently I came across the Similar By References module, This module is an adaptation of the Similar By Terms module, but using an entity reference field instead of just taxonomy terms to determine similarity. For instance, if the node you are viewing has a reference to an entity, other nodes that reference the same entity will be listed as ‘Similar’ content. This module uses Views to create its database queries and display its results so that you can define what fields to show, additional sorting, filters, displays, etc.