I built this circuit a long time ago to power 1 watt LEDs and it's very far from ideal. The current regulation is fairly inaccurate, efficiency is also quite low (but still much higher than that of a linear regulator), but it's quite simple, and uses standard, cheap, widely available parts.
The heart of this converter is the MC34063 integrated circuit (U1). It operates in buck mode (decreases voltage). There are few external parts. There are several capacitors - C1 and C4 for filtering/decoupling, C2 for decoupling (must be very close to U1) and C3 to set the operating frequency (which varies heavily with load, but should be somewhere in the higher 10s of kHz range). Resistors R2 and R3 are used for current sensing, R2 is used just for protection (switch current limit) and R3 determines the current through the load. The higher the current is, the higher the voltage drop on R3 is. When the sense voltage of U1 is approached, U1 will reduce the duty cycle, therefore decreasing output voltage, which then also decreases. Because the normal sense voltage of MC34063 is 1.25 V, which is quite high and might cause unnecessary heating, there also are parts R1 and Q1, which decrease the sense voltage to about 0.7 V, but also decrease the accuracy and increase temperature dependency quite a lot. With R3 being 1.8 ohm, I measured about 380mA through the load, which is quite high (standard 1W white/blue/green... LEDs are built for 350 mA, red and IR ones (possibly yellow and orange also) have a lower voltage drop and are usually built for 400 mA). This could be simply solved by increasing the resistance of R3 to 2.2 Ω or so.
Efficiency is somewhere around 70%, maybe even a tiny bit lower, with one LED and 12 V power in. Although it's much higher than the efficiency of linear regulators, it still is quite low for a switch mode converter. A considerable amount of power gets dissipated by the current sense resistor, considering the 0.7 V voltage drop and standard white LED voltage being 3.3 V. With more LEDs in series, the efficiency gets slightly higher.