How to choose right PWM frequency for LED?
For a question like this, you will probably get as many answers as there are people interested in answering. Here is my answer: It depends.

Here are some of the limiting factors, first the lower limits:


Persistence of vision: 


Different people are differently sensitive to flicker in a light source. Some would notice flicker even at 100 Hz, others perhaps not  even at as low as 10 Hz. 
Motion of light source relative to the eye makes flicker more discernible, scaling up with speed of the motion. 
Human vision sensitivity at low intensity of light - both ambient and source intensity. At very low intensity, the eye is much more sensitive to any change in intensity. So an LED operated at low duty cycle / low current and in a dark environment would require a higher minimum PWM frequency.



Now the upper limits:


LED turn-on characteristics: An LED cannot be toggled at arbitrarily high frequency, once the pulse duration approaches the turn-on time, the LED never really turns on fully, hence linearity of PWM control is lost to begin with, and at higher frequency / shorter pulses, eventually the LED just stays dim or off.
PWM provider capabilities: Your microcontroller would have its own maximum PWM rate, which sets a hard limit.
Switching losses: Any switching system, MOSFET based, BJT based, or other, suffers switching losses of power as switching rate increases. At one point this become significant both in terms of heating of switching device, and efficiency of illumination.


Thus, depending on these parameters, and any others affecting your specific requirement, the correct answer could be anywhere in the 50 Hz to few dozen KHz range.