Unless I have to go somewhere or guests coming over I play until I feel I am done. There is no set time frame and usually has nothing to do with how I am doing. Since I am playing well within my bankroll one great or terrible session does not determine anything, I stop playing when I want to quit (of course after getting as many free hands as possible before I am BB again).
XDragon made a very good point about leaving profitable games, if you are winning, try another rotation or two, one more time around should not kill a good session. If you are losing, try another table or take a small break.
PowDragn also made a good point about playing when ahead. Remember those chips are yours not freebies or others. When ahead, play the same style that got you there in the first place.
If playing within your means the time to stop is solely up to you, there should be no pressure to continue or stop, do what you feel is right. I would not play until completely drained, not good for focus or attitude.
Thanks,

