99.44% of the time problems such as you describe are a failing/failed Idle Air Control (IAC) valve.
Here is how it can be tested:
- With the engine warm and idling disconnect the IAC electrical connector, the engine rpm should drop significantly or even stall--if it doesn't the IAC is bad buy a new one -or- it could be that the throttle stop screw is not properly set, click here to see how to do this;
- You can check the IAC with a multi-meter, unplug the electrical connector and measure the resistance between the two terminals, it should be 6 to 13 Ω--if it isn't the IAC is bad, buy a new one;
- Next check the resistance between each terminal and the IAC body, in both cases it should be better than 10 kΩ--if it is less the IAC is bad, buy a new one;
You can also check the voltage between the red wire at the IAC (connector plugged in, key on engine off (KOEO) and ground (the IAC body will work), it should be 12.0 V or more--if not you have a wiring problem
You should be able to get a new IAC at any FLAPS for $90 or less...