erm jack,
actually for E46, at least for the non-M cars, best is to check when the engine is at optimum temperature. Meaning the engine has been running around for 5-10 mins, and has at least reached 100deg, or temp needle at the needle.
switch off the engine and check dipstick. if it's already in between the 2 marks, even if it's closer to the lower than the higher, dont fill up. only fill up if the level drops beyond low.
There are several different ways of checking oil level, for different makes of cars. some recommend cold, some recommend optimum temp, some recommend when the engine is still running (!!! yes, i'm serious)
best is to check our manual. for bmw, it's written inside. maybe we can bookmark this thread coz this qn has been asked quite a few times.