Stripslashes shouldn't be used on data coming out of a database. Without using a prepared statement, you *may* need to do stripslashes on input data IF magic_quotes_gpc is in use. Otherwise you will have escaped data stored within the db.
Stripslashes would go directly around the argument pulled though, not that of any other manipulations to the string:
With a substr, without it you would chop off up to 200 characters *including* the escapes (which should be taken care of before insert). The intent would be to have 200 characters *excluding* the escapes.
'<p>' . substr(stripslashes($row['blog_entry']), 0, 200).'...</p>' .
You would use htmlenties or htmlspecialchars if you want to interpret the string as text and not as html. To say it is something you should do is misleading; it is what you should do if the string *shouldn't* contain HTML that is parsable. If you store templates within a database, than you wouldn't want to convert it with htmlentities or htmlspecialchars.
My bad, I missed that Strider indicated to do it when it is something you don't compose yourself. That would be my thoughts on that as well (you'd write the templates; user input shouldn't allow it unless you want to do that [which you typically don't])