Ending a session on a cliffhanger is a great way to leave your players wanting more, and get them excited about coming back for the next session. It’s possible to screw this up, though, if you choose the wrong break point for your cliffhanger.
The key to a good cliffhanger is ending your session on a pause in the action, not right in the thick of it.
That may seem counterintuitive at first, but it’s actually pretty easy to implement. Let’s tackle this tip with a classic example: a big battle.
A climactic battle might break down into five segments:
- Opening skirmishes
- Major wave of enemy attacks
- Wave of attacks is repulsed
- More skirmishing
- Final showdown with the Big Bad 
Assuming that the PCs are heavily involved in segments 3 and 5 (the two most important parts of the battle), you should put your cliffhanger right before segment 5. (If you put it in 1, 2 or 4, that wouldn’t be a cliffhanger.)
That way, you’ve delivered a mini-climax to cap the session — repulsing the big push from the enemy forces — but ended things in a dramatic pause: the PCs aren’t going to be heavily involved in the skirmishes, and their big spotlight moment is still to come.
If you cut things off during segment 5, the final showdown, you’d be wasting all the momentum you worked so hard to build up — and when you start up again next session, you’ll be mid-battle and won’t be able to build it up again quickly enough.
It’s also important to resist the temptation to employ this kind of cliffhanger: “Dr. Doom swings his metal-clad fist, going for a coup de grace (roll dice), and…you’ll have to wait until next session to find out whether he kills you or not.” Mid-roll is the worst possible way to handle a gaming cliffhanger.
Look for that pause, that little valley in between the peaks of a cliffhanger-worthy scene, and you should be good to go. (I wouldn’t look to the movie Cliffhanger for pointers, though — it’s awful, but I just couldn’t resist using the image.)