LEDs are not ideal diodes, so the "turn on" point (Vf) is not a perfectly sharp transition. If we look at the I-V curve for a typical LED, we can see this:
The Vf is often taken at e.g. 20mA (some datasheets will give a couple of Vfs at different currents)
From this we can see that it's hard to control an LED by altering the voltage across it, so for the best control a constant current driver is needed. You can buy lots of ICs dedicated to this task, or you can roll your own simple source.
With a constant current driver, if the LEDs Vf varies (process, temperature, etc) then the driver compensates to keep the current constant, so this is the way to do things if you want the current to be exact irrespective of part variability (note the brightness at XmA may be different though, as this varies too)
Driving LEDs with a supply voltage above, below or above/below your output voltage
There are different types of LED drivers - some are just a basic constant current limiter, and some use a boost (or buck) topology or charge pump to provide a wider compliance range for the constant current.
Simple constant current driver:
A simple constant current driver will lose regulation as the voltage approaches the supply voltage (due to the drop across the limiting element) This will be given in the datasheet (see lowest supply overhead in this example part datasheet, pg.10)
Boost LED Driver
A LED driver that uses a boost topology (just like a switching regulator but set for constant current rather than voltage) will still provide a constant current, but it increases it's voltage above the supply range to enable driving of LEDs in series with a total Vf above the supply voltage:
SEPIC, Buck-Boost, Cuk LED drivers
Okay, so what about the case when your input voltage varies above and below the output voltage?
A typical case could be when using a Li-Ion battery which can vary over ~4.3V - ~2.7V and an output of 3V is needed to push the desired current through the LEDs.
In this case we use either a SEPIC, buck-boost or Cuk driver. All can do the same thing here but have different topologies (why you would pick one over the other is further reading you may want to do - plenty of Books/App notes out there...)
Anyway, here's an example of a SEPIC circuit using the LM3410:
And here is a table of the efficiency at input voltage above and below the output voltage, you can see regulation of the LED current is maintained perfectly: