Challenge, Reward, Challenge.
A game needs to be challenging, but not unfairly so. Once specific hurdles are passed, you need rewards, followed by more challenges. So you cycle that properly, and you have a good game, most of the time.
I'm thinking of Resident Evil 4 right now. Most people I know who played it the first time ran around half the game with half a clip of handgun ammo, and a spare grenade, as their weaponry, constantly pushed to the limit (the first time through anyway).
And as they pass through the game, they get rewards ranging from miniscule (I'm hurt and I got a green herb, oh thank god in heaven yes!!!) to awesome (new weapons. new weapon upgrades. the bulletproof vest. Most of the expensive one-time purchases from the merchant, actually).
New abilities, equipment or upgrades are gifts that keep on giving. You feel a surge of reward (I'm going to use that as the word for that warm, fuzzy feeling you know when you got something and freaking deserved it) when you get them, you feel more reward when you use them, knowing that you EARNED it, and you'll feel even more reward when it gets better. This is lessened somewhat if games REQUIRE you to get these at set points (God of War, for example).
Optimally, any skills, equipment and upgrades you get should be entirely optional (for example, you could play Resident Evil 4 using only the base, unupgraded handgun and a knife. It's doable, I've done it.) and not too easy, but not too hard, to get.
....aside that, everyone loves a good plot, good music, good gameplay, etc. But I feel that challenge/reward is a balance that very few games manage to hit on the head, so it's what I'm going to say.
The best game to show what I speak of? Diablo 2. A new piece of equipment makes you feel good when you realize, this is good enough to replace what I had earlier, if only I had 5 more strength!
A level later, you get to equip it. Reward surge!
Down the road, when you mow bad guys down with it? Further reward!
And if you do any of the things one can do to upgrade a weapon (socket it, for example)? Further, FURTHER reward.
And when you USE that upgraded bad boy? Further, further, further reward!
And when you get a new weapon to, again, replace the one you have? Reward!
It goes on like that, and I believe that is what made Diablo 2 so painfully addictive.