Im going to post briefly now, if you have questions ask. First paragrah is background.
Since i bought my car the idle was very shakey. It would jump from 400-800 RPM. Had my car scanned (thanks rico

) and found that one of my ignition coils was acting up. Had that one replaced. This helped enormously, but the idle was still shakey (around 600 ish). No other coils seemed to be throwing a code, but im lazy and the ICV is deep within your engine bay. So a buddy of mine (proliphic) told me that charlie checked his coils by unplugging one at a time, and measuring by ear (or by rpm shakey-ness in the car).
[what to do]When you unplug one(ignition coil), the car will have more shakey rpms, because every time that cylinder is meant to fire it wont, so it will be lacking power. Now if your ignition coil is shot entirely, when you unplug one of the coils you wont hear a difference. That would definatly throw the code. But listen to the car, and see if when you unplug one, the idle becomes more shakey-- but to a lesser degree. If so, replace that coil.
Its hard to determine at first if the rpms become more or less unstable from coil to coil, but eventually you hear it. Turns out that one of my coils seemed to just be weak. It has no hairline fractures in it or anything, but when i replaced it, my rpms stabalized. The car also had significantly more power, and most importantly, the power seemed to be better distributed throughout the RPM range.
2 short notes: A) if you are a bmw pro, this post is probably old news to you, but if you've just got your car recently and haven't checked the coils yet, might be worth a try.
B) I dont know if running your engine with one coil missing is bad for it. I'd assume so. Never unplug more than one coil at a time, as i would think this could very adversley affect your engine. ALWAYS be very careful when dealing with ignition coils when the car is on. just unplug them, do not take the bolts out. Pre-ignition coil voltage may not be that high, post is VERY VERY high. be careful
My car is 1998 328. It may be the sensor on that coil just wasn't working, and this ordinarily would throw a code. However I feel that this may help some of you out. Let me know how it works out, hope it helps