Get out your DMM and put it on volts range. One lead to ground and the other to the small terminal on the solenoid. If you get 12V when you turn the key to the start position, tap the solenoid and see if it turns over. If it does, your solenoid is lazy or sticking.
If you dont get 12V, go to the fuse box. Where the starter relay would live (if you had an auto) you will find a jumper. See if you get 12V there when you turn the key. If not trace it back to the ignition switch.
Oct '00 E46 330i. Feb '92 525i (departed)