This could be for a variety of reasons, as the emission control system is very complex. Take a look at RepairPal's article on the Check Engine Light and emissions control: http://repairpal.com/check-engine-light
You will most likely need a professional diagnosis.
Our check engine light went on in our 2004 Kia Sorento. Turned out to be a misfire of the 4th cylinder. Mechanic reset the light, hasn't come on since. I believe you can go to Advanced Auto and they have a code reader there. Try to find an honest mechanic. Best of luck!