Any code reader will check for historical codes even without a CEL, but that's probably not your issue.
It sounds like the engine is turning over (cranking) just fine, it's just not starting.
When it happens, does it work the second time you crank it (immediately) or does it not work at all for a short period of time?
Does it usually happen in colder or warmer temps or at the same time of day (first thing in the am)?