Originally I was going to use 3D polygons and DirectX lights, but I changed my mind because 1) working in real 3D, even in a limited way, is a pain, and 2) it's hard to predict the effects of a light on 3D geometry. Instead I'm going to implement a two dimensional method that includes shadows. I used one of VirtualTT's maps to do some testing in Photoshop.
unlit:
red, green, and blue lights overlapping, night:
shadows and light-blocking polygons, sunset: