Could be the air temp sensor which measures the temperature of the air going into the inlet manifold, which in turn tells the fuel injection system how much fuel to add. If this is working incorrectly, the injection system will add too much/little fuel. This normally isnt so much of a problem at higher revs because the engine has more momentum therefore is less affected by small changes, however at lower rpm the engine is more sensitive to small adjustments.
On the other hand, it could be a faulty TDC sensor, getting an incorrect reading from the crankshaft therefore setting the ignition timing up incorrectly for the speed of the engine
Nathan Harold
December 2008