I find setting time-limits works the best for me.

It helps me to think in terms of my average hourly rate, or ptbb/100. I've been averaging about $60/hr 9-tabling 100NL, so I figure if I play for an hour I've essentially made $60, regardless of what I actually made. It sucks being down, but you're no more likely to make it back right then while you 'feel down', than if you just wait till tomorrow's session.

In fact you're more likely to spew cash in that mindset of 'having to make it back' than you are from a fresh, neutral, objective state.

Look at your monthly graphs, look at all the downswings, and put them into perspective of the whole month's winnings. Then remember those graphs when you're down 3 buy-ins in a session.