i second the bmw compatibility, though i have a different set-up than murdoc158.
i have the factory-installed bluetooth option, with which my iphone pairs up flawlessly and uploads the phonebook to the car so that it's visible on the stereo screen (i do not have idrive) - this screen acts as a caller ID display for incoming calls as well. the bluetooth option also has a programmable voice dialing system, so i can voice-dial with my iphone as long as i record the names and numbers i want to use with voice-dial. it also allows voice dialing by number without any pre-recording.
then i have the bmw ipod-your-bmw kit. plugging in my iphone charges it and allows me to play music and control it via the steering wheel controls. when a call comes in, the bluetooth system fades the music, shows the caller ID on the stereo screen, and i can answer and adjust volume using the steering wheel control. after the call is over, music playing resumes.
the only downside with the ipod-your-bmw kit is that you have to set up special playlists and name them a certain way in order for the kit to see and use them. and it doesn't show you song title, artist, or other information. there are some after-market kits that do show more information and will use any playlist on your iphone/ipod, but i just didn't do my research in advance of buying the bmw one when i got my car last year, but it still works out fine for me.