It could be a million things, well, almost. I had a truck that did this, and after trying all the "normal" stuff, it turned out to be a severely clogged catalytic converter. Pull the down pipe and see if it'll run, it's loud. Remember, all you need is fresh air, fuel, spark, and a place for it all to blast out for these to run, and they're all equally important. You've obviously got spark, air, and some dribble of fuel. Maybe the fuel pump is on its way out?