If you have a BMW E46, E39, X5, and I think the E36 with climate control and your heater fan has a mind of its own it is most likely the final stage resistor that is causing the problem. In my case the fan stopped blowing, then after a day or two worked fine again for weeks, then stopped completely. Other people report the fan changing speed for no reason. The final stage resistor located just to the left of the clutch pedal on RHD cars. It is located in an awkward location but it is possible for you to replace this with no special tools.
There are a couple of good guides on the internet to help you out. The first one I found on the Motormec website and it looks like it was originally an article from Total BMW Magazine http://www.motormec.co.uk/aircon.pdf, it gives a good introduction and a good overview. The second one is from the E46 Fanatics website and it is very detailed with some excellent pictures http://www.e46fanatics.com/forum/showthread.php?t=794644. This guide from Impee.co.uk has some very clear pictures but is not as detailed as the e46 Fanatics guide http://impee.co.uk/bmw_final_stage_resistor.htm.
The tools I used were a ratchet with a short extension and a Torx t-20 bit, a philips screwdriver, and a torch. The most difficult part of the whole process is removing the top screw from the stepper motor because it is hidden well out of sight. If you rub your finger along the top of the stepper motor housing to the left of the stepper motor you will though feel the channel with the screw located at the end. It is the top left screw in this image.
Here is a picture of the Final Stage Resistor also known as the hedgehog. It is BMW part number 64116920365 and it is probably worth shopping around for one as they can be expensive direct from BMW.