How to add complex joins to your collection in Magento

I recently had the situation where I had to add a really complex field to a product collection in Magento. The client had a very special way of calculating product prices that depended on: The supplier that delivered the product the cheapest (a product could have more than one supplier). The customer that was logged read further ...