You can take it to an auto parts retailer - like Checkers, O'Reilly, Autozone, AdvanceAutoParts, etc. - they can pull the CEL code for no charge, though by practice, they cannot erase the code. Dealerships generally charge a flatrate "diagnostic" fee before they even touch the car - usually runs anywhere from $80-$105 - depending on where you live at. You could also pickup an OBD-II scanner at most autoparts, Wal*Mart, Sears, etc. - the basic ones usually run about $50-$60 - not a bad thing to have at home, will pay for itself after one use (compared to the diagnostic charge).
As for what it could be, without pulling the code, be like a shot in the dark - best to take it somewhere to pull the code, as it could be just about anything at this point.