And also a dirty icv doesn't throw a check engine light, but that would explain the rough idle.
I think you're best bet is when the CEL is on, stop by an Auto Zone. They loan out OBD2 code pullers for free. They can pop it on your car and in seconds tell you what is causing the CEL. If you give us the code/number it reads out, we'll tell you what it means and try to pinpoint what's causing the problem in your engine.
And welcome to United.