The light comes on when the monitoring system senses too little current flow in the circuit, symptomatic of a burned out bulb. But this can also be caused by other things. It is a fairly common problem on E36s to have problems with the bulb holder contacts, had that on both of mine. I assume the early E46 uses the same the same design.
Check the metal contacts on the bulb holder. If they are charred from arcing, or the plastic is warped from heat, replace it. Then inspect the contacts where the bulb holder plugs in. This is actually a circuit board. Use a NEW CLEAN PINK pencil eraser and GENTLY clean the circuit board contacts. Sometimes the circuit board actually gets arc burns and pitting, which is a big problem to fix. All of this extra resistance can cause the circuit to think a bulb is out.
Why does this happen? Some people say that it is caused by using NON-BMW bulbs. There is a thought that the BMW OEM (dealer stock) bulbs run a bit cooler and draw less current than the US replacements from Sylvania, etc. The parts guy at my dealer said he sees this alot, but when people replace the holders and use BMW bulbs, the problems don't return........