My personal rule is to keep until just before the AF is due and if they make me a good enough retention offer, and I like the card, I keep it. Maybe this has a slight slowing effect on churning but from a fico standpoint, and considering that retention offers aren't sweet enough in many cases, you are still able to "rotate" through cards.
There are more than one way to skin a cat but the one method I am totally against is the "get the card,get the bonus, and immediately burn the card" approach. I think it's bad on many levels.