For my approach lights, I use certain techniques as written above, and some slightly altered ones. However it's a matter of preference.
By using vertical planes in GMAX (and by extension a vertical Normal), the texture will only display on one side so you don't need separation planes on the app lights. Therefore you can implement them with conditions as mentioned previously.
Where I differ to the above is on the texturing, and again is a matter of taste. Where the tutorial in the Wiki and what rosdvd wrote states to have a black day texture and progressively brighter mipmaps, I find this washes the colour out which is especially bad for PAPIs (or endlights etc) and also doesn't allow the lights to be displayed during the day.
The way I do it is to have a large plane in GMAX, create a single 1024x1024 texture for use with both day and night as ianj stated, with a small light dot in it, then make the light dot progressively bigger through the smaller mipmaps. This enables the colour to be seen at long range without washing out. However the tradeoff is by the time you get to the last mipmap, you've essentially got a square light, but still visible at greater than 10nm. More refinement might be feasible but it's ok for now. Another issue is that for the light to not disappear after about 30 metres you need a large hidden plane underground, per textured light. They shouldn't drain any noticeable FPS unless you are right on the border of stuttering anyway.
Also for the model placement, I have the fixed model (light pole and fitting etc) placed in Whisplacer, then only the "light" placed in the SODE XML. So this method does require 2 models but only one placed in SODE.
Let me know if you need anything else.