Could be a vacuum leak? How does it sound in the morning? Does your car have trouble starting? You can check a vacuum leak with a smoke machine. A shop hooks it up to the manifold and lets it run. The smoke will leak out. You can also use carb cleaner. Let the car run, spray carb cleaner on the vacuum lines. If the idle drops, you have found your leak.
The other option is a bad Idle Control Valve (ICV). You can remove it and clean and test drive it. Do a search on ICV on this forum or bimmerforums and you will find a DIY.
Hope this helps.