As I understand it, on E46 models from 1999 to 6/2000 require the use of a specialty tool to reset the Service Interval Indicator.
E46 6/2000 and later:
With the ignition off, press and hold the trip odometer reset button (the one on the left) and turn the key to the accessory position.
Hold the button for 5 seconds or more *until* "Oil Service" or "Reset" or something similar appears.
Press and hold the button again for 5 seconds *until* the message flashes.
While the message is flashing, briefly press the button one more time. You should get the message "End SIA"