Hi,
We can only control one or the other, current OR voltage, not both at the same time. We choose to control current because it works better as the LED characteristics change over temperature and aging.
For example, for an LED current change of 1 percent the voltage might only change by 0.1 percent. Looking at it the other way around, if the voltage changes by 0.1 percent the LED current might change by a full 1 percent.
Control of the LED is about covering for imperfections in the LED while still maintaining a good operating point, so if we try to control the voltage we've got to control it to a within very small percentage, IF we control the current, it's bit easier.
Also, the LED characteristic voltage has a tendency to change, which means if it is run from a constant voltage source the voltage source will never know what characteristic voltage the LED has changed to. So if we set it for 3.3v and it draws 20ma that means the characteristic voltage is 3.3v at the time, but if it changes to 3.2v later that means it will draw more current, and because the current could change much more than the voltage change, that could mean the LED draws a lot more current now.
If we control the current though, the voltage will happily change from 3.3v to 3.2v but it will still draw just 20ma.
So the most important spec is the current spec, but we do have to make sure that our circuit can also deliver any voltage that the LED might need. If it needs 3.6v and our supply can only go up to 3.5v, then it wont be as bright.
One way to look at this is it is like powering an LED with a voltage power supply that has current limiting. IF we set the max voltage to 5v and the current limit to 20ma, the LED should run fine. We can not set the power supply to 3.3v with no current limiting though even if the LED draws 20ma *at the time*, because later it might try to draw much more current and then burn out. The power source in this case would be called a "current source", and that's the best way to drive the LED.
A series limiting resistor is used as an approximation to a current source. It's not as true as a current source, but it works in many cases and is cheaper and easier. It does have to be analyzed to make sure the LED can run with anything that changes to the LED and the power source.