Good question indeed, although not as easy to answer. I believe @Ram is right that there aren't any best practices written out there, guess most of it is passed on through the content modeling training (see the available training tracks) but I have to admit, that the answer to your question is not discussed in much detail there.
From experience I've seen that Rich Text fields are one of the most abused options in SDL Tridion. Things I would call typical abuse is for instance an Article Schema with a single Rich Text field, designed for editors to enter HTML directly onto the page. While that is clearly not the way to go for most people (I hope ;o), it does greatly depend on customers requirements how far one should go and what you should allow in Rich Text field usage.
The first discussion which always comes up is if you should allow formatting of content by editors at all. I'm always tempted to say content and layout should be separated, but you directly come into a conflict there with things like tables, emphasized text, lists and links. So that's where Rich text fields come into play.
I'm in favour of restricting the use of Rich text fields as much as possible always, so use the available XSLT to strip unwanted tags and (styling) attributes. One of the first things to consider are usage of images in a Rich Text field, and second on the list will be script and form tags. If you don't want to allow them in your Rich Text output, adjust the XSLT to remove them. But in the end it (unfortunately) mostly comes down to customer requirements. Although you do have a role in advising them on what does and what doesn't make sense of course.