LEDs like to be powered with a constant source of current-ie. a fixed current regardless of the voltage it takes to achieve this. In practice for simple applications we assume a fixed forward voltage drop, and use a resistor to achieve the correct current.
However, with changes such as process variation, temperature etc. the forward voltage, and hence the current, will change. For simple applications this is not an issue, but for high power application such as you mention, this does become a problem, and so resistors are not used.
The solution is to include feedback in the circuit. As part of the driver circuitry, the current will be measured and the voltage across the LED controlled to always keep the current at the desired value; as a useful bonus, this also give you the ability to dim the LED by reducing the current.
As you point out, if we turn the excess voltage into heat it ends up being pretty inefficient (this is a form of linear regulator
The solution is use a switching regulator, which turns the voltage either fully on, or fully off. A capacitor is used to "average" this voltage, and by changing the ratio of the time turned on to the time turned off, we control the average voltage. All with an efficiency of 90%+.
If you're interested, then a commonly used circuit is a buck converter
And if you'd like to get in-depth, then these two videos with Howard Johnson and Bob Pease are extremely good,
Driving High Power LEDs Without Getting Burned - Part 1
Driving High Power LEDs Without Getting Burned - Part 2