After engine is warmed up and idling, unplug the 2 wire connector on IAC(idle air control) Valve
IAC Valve will close and RPMs should drop to 500, or engine may even stall, either is good, it means no vacuum leaks.
But if idle was 2,000rpm after warm up and dropped to 500 after unplugging IAC Valve that would mean computer was setting the high idle with IAC Valve.
If Idle doesn't change then IAC Valve didn't close(move) or it was already closed and you have vacuum leak or someone has messed with anti-diesel screw.
On the throttle linkage you will see an anti-diesel screw, looks like idle screw but we all know you can NOT use an idle screw with fuel injection, no Jets
Someone may have adjusted this screw thinking it was an idle screw
So with warm engine idling and IAC Valve unplugged, turn this screw to see if idle goes down, if so keep turning it until idle is at 500.
If RPMs don't change then leave screw as it was, turn it back.
With IAC Valve still unplugged and idle still high, start pulling off vacuum hoses on the upper intake, and cover port with your finger, start with Power Brake booster and PCV Valve hose.
Then move on to smaller hoses
Replace each hose after testing
If RPMs drop you found a leak
Engine off
If you have Cruise Control unhook that cable to see if it is holding open throttle plate
Also the gas pedal cable, it could be holding open the throttle
Remove air tube on upper intake and inspect throttle plate and linkage, make sure plate is not loose and spring is strong enough to close throttle against air flow