Originally Posted by DanTheMan
Try looking at your O2 sensors. I just went through a whole mess trying to figure out my idling issues, and it ended up being a bad upstream O2.
^and he got reps for that^
It is usually the IAC or the upstream 02 sensor. I've cleaned dozens of IAC's and it's never helped one of 'em. At right around $45 you could call it preventative maintenance if it doesn't straighten it out.
As stated above, the next usual culprit is an 02 sensor. You can try unplugging it to see if the idle straightens out. If so, replace it.
(EDIT) sometimes it's difficult to tell which one it is because they'll both have a tendency to sound like a big vacuum leak near the intake. Try unplugging the IAC also, if it gets worse that should be the problem. But usually if you can't keep it running it's the IAC. Running, but poorly and an occasional CEL is indicative of the 02 sensor.