Using a single heatsink is very common - sometimes it can even increase performance (thermal matching of discrete transistors for helping against thermal runaway or better matching).
However, there are a few things to watch out for:
How big does your heatsink need to be?
Using multiple parts on a single heatsink could make thermal calculations a bit more tricky. Are all your parts going to be putting out the maximum heat they can during normal operating conditions at the same time?
If not, you don't need as big a heatsink. However, the math on figuring out what size you need can be a bit trickier.
What about isolation?
When using multiple devices on a single heatsink, you need to take care that you are not shorting out bits of your circuit. Many packages have metal tabs to connect to heatsinks (such as the TO220 package). However, these metal tabs are often also connected to a certain pin internally. Check your part's datasheet to see how it is connected. Take a look at the following schematic:
simulate this circuit – Schematic created using CircuitLab
If we were to connect these two parts to the same heatsink, without isolation pads, we would be shorting the input transformer! This is clearly not a good thing. Therefor, we often use either separate heatsinks, or isolation pads. These are pads commonly made out of thin pieces of ceramic (Mica is common) or some other electrically insulating material. Make sure that when you use these pads, you also use the propper screws or protection sleeves for the screws! If you isolate the metal tab, but don't isolate the metal screw, you will just short it out through the screw.