It could be a lot of things, IMHO.
I'd start with having that/those code(s) checked.
Running rich ... Oygen sensor? Temperature Sensor? Injectors need cleaning?
Hi idle speed is not just simply "factory set" ... Idle speed control relies on inputs from various sensors, which are then interpreted by the ECM and output to the IAC and injectors which control the amount of fuel and air supplied to the engine at idle.
Almost any shop will check codes for a nominal charge (~$25.00?) and it will probably save you money versus throwing parts at it until it runs right.
Fortunately or unfortunately ... the days of tackling this problem in the driveway with a point-file and a flat-blade screwdriver are over.
One other "DIY" thing you might try is to clean up the EGR valve with some carb and combustion chamber cleaner. If it's sticking, it will also allow more air into the system ... resulting in a high idle.