If it does not idle high when started cold, that is a problem itself.
The IAC opens and closes to control idle speed. When first started cold, the engine should run 1500-2000 rpm. It should come down to 900 rpm within 30 seconds to a couple of minutes depending on temperature. This allows the engine and O2 sensors to warm up. If this happens, at least you know the IAC does move.
If the engine cannot adjust to the load of the torque converter in drive, it generally means that the engine is running lean. This can be caused by extra unmetered air getting into the engine through a vacuum leak or simply air bypassing the metering device (the mass air flow sensor).
Again, check the PCV valve and hoses in the PCV system. This includes the hoses from the valve covers back to the inlet tube. Also check that there are no possible leaks in between the throttle body and MAF.
If the engine seems to lack power in general, the MAF itself might be dirty and not measuring the air correctly.
Remember, the computer will adjust the idle speed only if it is able to control it (the IAC) and if it has the correct information to do so (MAF)
If the CEL has come on, check the codes first.