Just chiming in with my experience. I purchased a new 2000 323i (6 cylinder, for those that don't know) and for 9 years I performed 15,000 mile oil changes and 7,500 filter changes. When I replaced the valve cover gasket at 180,000 miles there was no sludge in the engine. The car is still on the road and purrs. My current car, I will change the oil at 10,000 miles, which translates to once a year, just to feel warm and fuzzy.
If no codes are being thrown use Chevron Techron fuel injector cleaner (concentrate). It solves rpm fluctuating upon cold start-up. Also, for most BMW problems start off by scanning your car with the Peake Research Tool. It contains the actual BMW codes. If you want to register a newly installed battery for free (just buy a $10 cable) and google/download BMWLogger