Have you checked your air filter? If blocked or very dirty it could cause the engine to run too rich.
If it is dirty renew it. The EML should go out after a few days of normal running as the unburnt hydrocarbons get burnt off the sensors.
If not the air filter, try a tank full of Shell V Power or BP Ultimate diesel next time you fill up, and give the car a decent run.
ChicksFan, June 2013