I've already got heatsinks on my SoC, ethernet chip and regulator but they've barely made any difference, maybe 3-4C at the lowest average idle temperature and no difference at all to the higher end (i.e. without heatsinks the temperature varied from 46 to 48C, with sinks it's 43 to 48C). I tested the fan before and it dropped the temperature to about 33C, which isn't bad from 5V, 80mA fan that's narrower than my thumb!
Heatsinks are a common upgrade because they're cheap and as
@TenEightyOne says, they're free cooling; people go for them regardless of whether they need them just because 'why not', basically. People do mount fans (I've seen one or two 'plates' that have fan drivers on them) if they're overclocking and pushing the hardware but 80% of the time you don't need them, but because I don't know what I'm doing with mine yet - I may turn it into an emulator, and you can run Descent, Quake 3 and other power-hungry 3D games natively on it - I figured I might as well work out how to monitor the temperature. There's also the fact that I have these tiny 7-seg displays and a really small, relatively low power (0.4W, 5V) fan with nothing else to use them with, so...
In terms of peripherals, I've only got my PiTFT (which kills the airflow between it and the Pi by closing off three sides, gets quite warm independently of the Pi anyway and draws 75mA at all times) and camera module (probably draws a few µA 99% of the time but the datasheet helpfully states every spec as 'TBD'...). Very rarely I'll connect a keyboard and mouse. Eventually I want to have it in an enclosure, though, and if it's already nearly 50C when idling and not enclosed in any way (except by the TFT) I'd like to have a constant readout so I can be sure. Also it's just a nice Python exercise, I guess.