Hi dave, Hope you resolved your problem.
I have a 2000 323i and just the other day my service engine soon came on, like you it went off, a day later it lit up again. At first i thaught it was a coil misfire(happens often) i ussualy replace the coils. I had the car diagnosed and a DTC P1397 (BMW Code) was found. The mechanic told me a camshaft sensor needs to be replaced. Again a high failure BMW Part and is going around 80$. Hope this helps.