I personally always use UTF-8. It is well supported and every language, OS, and browser supports it somehow. Entities are nice to display, but they are a pain in the neck to edit. Named entities can refer to a lot of characters, but will only cover occidental character sets. For asian languages you will have to go back to hex entities and that is not pretty. Hexadecimal entities also have to be decoded or encoded using the Unicode tables anyway, so you might want to use a unicode flavor to encode you text in the first place.
If your main audience is english, you might be thinking that you can get away with ISO-8859-1 or cp1252 but that would be a mistake. Sooner or later somebody is going to write accented or other foreign characters and when that happens, it is too late to fix your encoding: some text is already screwed up.
Here are a bunch of further reading that have saved me a lot of headaches when playing around with charsets:
Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) Is a detailed introduction to character sets and their usage and difference by joelonsoftware.com. The information there is quite general, but is useful to help figure out which encoding to chose.
Character sets from Browser to Database is a very practical and pragmatic article from SUN that covers a whole lot about the various places where you have to verify that your encoding not being converted to something else.
What Is UTF-8 And Why Is It Important? is another article by SUN, that goes deep into the nitty gritty of UTF-8, and should be allowed to answer any question you have on the details of UTF-8 after having read the first 2 articles.