You have "check engine" light on because the car computer received data from certain o2 sensor that was out of range...If the sensor itself is malfunctioning, then it will give out wrong data--but never says the sensor itself is bad. If you want to save money, get a code reader ($40 +/-), and start by replacing o2 sensors($60_$120). You need a code reader to erase the error message from the car computer.
This is a cheap way TRY to fix it. Nobody knows for sure what the problem really is. If a garage replaces you EGR, and later the error message comes back, you are not getting your money back. Instead, you pay for the next possible cause they need to replace.
BTWI fixed 2 of my cars this way.