BJTs versus (MOS)FET to switch a load from a microcontroller
Partial answer - could get very long - may add more later:

Choices in this context are usually bipolar or MOSFET. Once you get to JFET you may also wish to think about SCR/TRIAC, IGBT, ... .  You may wish to throw bipolar-Darlington into the mix. 

Short: Goes something like - 


Small bipolars up to say 500 mA and 30 Volt load voltage are low cost, can be driven by 1V up of drive voltage, need drive currents that are available from most processors and are widely available. 


Heat sinking when run in switching on/off mode is not usually required or is modest (modest PCB copper usually enough) and SOT23 or TO92 size packages are usually adequate. When linear loads are driven and dissipation rises lower VI products and/or better heatsinking and/or larger packages are required.  
Frequencies of 10's of kHz are available with a single resistor drive, 100's of kHz with a slightly more complex RC drive and low MHz with more care. Higher again gets specialist
Ease of use in this range is usually as good or better than MOSFETS and cost is lower.

For currents from about 500 mA to 10's of amps at 10's to 100+ Volts a MOSFET is often easier to use overall. For DC or low frequency switching (say &lt; 1 kHz) direct DC gate drive at typical microcontroller levels is possible with selected parts.
As frequencies increase somewhat more complex drivers are required to charge and discharge gate capacitance (typically around  NF) in times which are short enough to keep switching losses during transition low enough to be acceptable. In the 10 kHz - 100 kHz range simple drivers of typically 2 or 3 jellybean BJTs suffice. (SO you need 2 or 3 BJTS added if you uses a MOSFET). Specialist driver ICs are available but not usually necessary or cost justified  
For higher voltages and/or higher frequencies bipolars start to win again.
Specialist bipolars  exist such as TV line output devices (what's that ? :-) ) which run at around 1 kV with a Beta of about 3 (!!!). As base power ~= Vdrive x Idrive and Vload >>> Vbase it does not overly matter that Ibas ~= Iload.
An IGBT is an attempt (usually successful) to run with the hares and hunt with the hounds - it uses a MOSFET input stage to get low drive power and bipolar output stage to get high voltage at high frequency performance. 
Darlington transistors (two bipolars "in series") (properly, probably, 'Darlington pair') have very high Betas (1000+ common) with the penalty of Vdrive = 2 x Vbe (as opposed to 1 x Vbe for a single BJT) and Vsat > Vbe of the output transistor and a pronounced reluctance to turn off if driven hard into saturation. Limiting base drive to stop saturation slow down further increases Vast_minimum. 


My favourite Olde time but useful switching regulator the MC34063 includes an amazingly capable output driver which is a Darlington pair. It can be useful but saturation must be avoided at it's massive [tm] ~ 100 kHz full speed, so efficiency suffers at low Vsupply when the Volt + of output saturation significantly detracts from the load drive voltage. 
A small darlington transistor can be driven from say 1.5V (more better) at usually &lt;= 1 mA per Amp of load. If output saturation is acceptable they can be very useful.
The useful and popular ULN200x and ULN280x hex and octal driver ICs use open collector darlingtons, with 500 mA per channel rating (not all at once, ideally). There are a range of input voltage versions and some are suitable for direct processor drive without even a resistor. The ULM2003 and ULN2803 are the best known but not necessarily the most useful in processor drive applications. 





Considerations include but are certainly not limited to power level, drive voltage, load voltage, available drive level, switching speed, required simplicity, heatsinking, efficiency, manufacturing volume &amp; commercial/hobbyist, cost, ... .

At low power levels and modest voltages - say 10's of volts and under 500 mA (and possibly up to a few amps) small bipolars may be a good choice. Drive current is about Iload/Beta (Beta = current gain) and a Beta 0f 100 to 250 at 500 mA is available with better performance parts and 500+ with specialist ones. An eg BC337-400 (my favourite TO92 BJT tipple) has Beta of 250-600 which has sqrt(250 x 600) ~~= 400 hence the part name. The "guaranteed" Beta of 250 (do check the data sheet) allows Iload of 250 mA per mA of drive. With a 2 mA drive - available from most but not all processors - you can get 500 mA load current, although more drive will not go astray. This is achievable with drive voltages of say 1V or more so a processor running on 3V3 or even 2V will probably manage it OK.  MOSFETs with low enough Vgsth (gate threshold voltage) can run at these drive voltages but they become rarer and more specialist below a few volts drive. Required minimum drive voltage is usually  volt or few above Vgsth (see datasheet in EVERY case). 

Bipolar have on state voltage drops (Vsat) dependant on load current, drive current &amp; specific device type. A Vsat of a few tenths of a Volt at rated current would be very good, 500 mV probably typical and higher by no means unknown. A MOSFET has an on resistance Rdson rather than Vsat. Rdson is dependant on drive voltage, load current and device (at least). Rdson increases with temperature and may double over ambient temperature values. Take due care - data sheets USUALLY cheat and give Rdson with pulsed loads and say 1% duty cycle and low enough frequency to allow die cooling between pulses. Very naughty. Double published value as a rule of thumb when used 'in anger', although some parts manage say only 20% increase over ambient to max temperature - see datasheet in each case.

A bipolar with say 100 mV Vsat at 500 mA has an equivalent resistance of R = V/I = 0.1/0.5 = 200 milliOhms. Tjis figure is very easily bettered by MOSFETS, with Rdson of say 50 milliOhms being common, under 5 milliOhms being reasonably available and under 1 milliOhm  being available for people with special needs and bigger wallets.



Added:   This is a long winded and useful when you need it expansion on 2 points from Andy Aka's answer. 

@Andy aka in his answer makes two very good points which are missing from my answer above. I concentrated more on switching and load driving aspects. 

Andy points out (not quite in these words) that: 

(1) The voltage between input and output on a MOSFET "source follower" is less defined and much more device dependent than with a BJT. When used as an emitter follower  where the "reference" voltage is applied to the base and output voltage taken from the emitter, a BJT drops "about" 0.6V dc from base to collector in typical operation. Voltages from as low as about 0.4V and as high as say 0.8V can be expected in extreme designs (very low current or very high). A MOSFET source follower with reference on the gate and output from the source will drop at least Vgsth from gate to source + whatever extra gate voltage is needed to support the current drawn - typically 0.1 to 1 volt more but could be 2V+ in high load or low spec device examples. Vgsth is device dependant and varies from about 0.5V to say 6V+ and is typically 2 to 6V. So the source follower drop may be anything from about 0.5V (rare) to 7V+ (rare). 

(2) A transistor is a 1 quadrant device (eg NPN = Gate +ve, collector +ve, both wrt emitter for turn on BUT the "undefined" negative Y axis locus (base ZERO, collector negative, tends to be non conductive for a device dependant voltage but "some volts" is usual. A reverse biased MOSFET presents a forward diode substrate diode across the drain source terminals when the MOSFET is off and a good approximation to a small capacitor when the MOSFET is off but forward biased. So, an AC signal more than about 0.8V peak-peak is increasingly clipped on the reverse bias half cycles as voltage is increased. This effect can be overcome by connecting two MOSFETS of the same type in series opposition. Gates connected as Vin, sources connected as floating midpoint, drains as vin and vout either polarity. This arrangement makes for a truly awesome and useful switch and also leads to some head scratching from those who do not realose that a MOSFET is on in quadrants 1 and 3 (For an N Channel FET Quadrant 1 = DS+, SG+. Quadrant 3 = DS- SG+).