I was bored at work and had an idea so I started playing around in LTSpice and came up with this circuit to power a couple of LEDs from a 12V battery.
I can't believe how simple it is. This is an example of a Schmitt trigger LR oscillator, the only difference is, the current in the inductor is also being used to power some LEDs. It uses a comparator with hysteresis to turn on Q1, causing the current in the inductor to increase, until the voltage across R1 is enough to turn it off, causing the current in the inductor to flow through D3 and the LEDs, until it drops enough to turn the comparator back on again. I'm sure this has been thought of before but I've only seen this type of design in voltage regulators, not current regulators.
You can use any comparator you want, the LM311 will probably do but if you want to drive a MOSFET, you'll want to use a comparator with a push-pull output and a N-channel MOSFET.
This circuit uses a switching frequency of about 160kHz and a huge ripple of 160mA (this is no problem for an LED) and an average current through the LED of 280mA.
This circuit is a simple, cheap and relaiable alternative to using a special LED drive SMPs IC. I haven't built it yet, hence this is why it's in the theory section but it should work very well.