I also agree - it is not the VANOS seals
Had something similar on my '99 328i. I kept on getting codes 1189 and 1188, which mean there is a fuel mixture problem (caused by an air leak) - got worse and had a very rough idle that corrected itself somewhat when warm I examined the rubber intake boots that connect the MAF to the manifold and found that one was ruptured and letting in air. Replaced the ruptured ones and voila! no codes, no rough idle and improved fuel economy. Because the idle is so rough I would start there. If not there, check the plugs and the coils and the electrical to these points. Question - Did anything happen just BEFORE this problem occurred?