Here is an example of a good time to show cards IMO:
I play live primarily. Sometimes I find myself at a nitty table, and everyone is just pushing $12 pots back and forth.
I will raise with AA or KK, and everyone folds. Others will raise with premiums, and everyone folds (and they show their AA and convey the disappointment).
In situations like this, I like to 3-bet bluff in LP, or simply raise LP with some rags. When everyone folds (because they are nits) I will then show my garbage cards.
I had a guy lay down J-J face up before when I 3-bet him (very nitty table), and I showed my hand. If I remember correctly, that time I showed a 4-7o FTW. This player was extremely tight, and he opened for $10. I 3-bet him to around $35, an he folded face up.
My point is, sometimes that is all it takes to get some action going at a table full of nits. However, be careful what you wish for - after showing a bluff people will look you up with a walmart receipt.
And the same holds true if you are getting too much action - sometimes I show a monster hand so I don't have to play flops 5-way.
But generally I only show bluffs when the table is super nitty to generate action. It works wonders. Then - what do you know - I get a monster hand, and I get PAID because now they think I am bluffing
again. Your opponents will remember a bluff much longer than they remember a good hand. It will still be stuck in their minds even on future sessions, so be careful.
Because of this, I have a different table image depending on which player you ask. Some people think I am a loose-aggressive bluffer, and they will call me light. Other players believe I am super tight and aggressive. I like to keep everyone wondering. It is bad to be predictable at a poker table. If the only time you raise is when you have it - people will always know what to do vs. you.
That is all.