You could check the TPS (throttle position sensor) and the IAC (idle air control valve) as both give feedback on the idle situation. Check for codes with a scanner as well.
You may be able to set the idle (so to speak) by disconnecting your battery and leaving it for a while (say 10 minutes or so). When you reconnect your battery, start the car and turn every accessory on (light, signals, max AC, radio, step on the brake, and turn your steering wheel. This gives the computer an idea of where it should set the idle to keep you running at a stop light.