Check the air filter and while you are there clean the MAF sensor. Another possibility is the ethanol in the gas has separated which will settle on the bottom of the tank, read
HERE for more info. I know that my truck had extremely low RPMs at idle, under 500, and when I did the timing belt and water pump service the idle RPMs were back to normal. I guess that the timing belt over time stretches out and the timing is off.