Tags that you don't have closures like </p> are called "empty" tags in the specification... and that's a confusing mess because <p></p> or <div></div> are NOT considered "empty" by the specifications. BR, IMG, META -- those are what they mean by "empty".
Confused? Precisely why I say the specifications legalese is a hefty chunk of the problem with people learning HTML. Royal pain in the...
Basically, it's not whether or not a tag contains content, but if it CAN contain content.
The official list of EMPTY tags as of HTML 4 are:
APPLET, AREA, BASE, BR, FRAME, HR, IMG, INPUT, ISINDEX, LINK, META, PARAM
There are also other tags like EMBED, but those are browser specific and really have no business in any code written after 1997, which of course is why EMBED is now magically allowed into HTML 5... :/
When using XHTML, these are the tags you have to close with />, and are the ONLY tags it is valid to close that way.
When in doubt, go to a good reference like this one:
http://htmlhelp.com/reference/html40/
Go to HR for example:
http://htmlhelp.com/reference/html40/block/hr.html
You'll see it says "contents:empty"
Go to P:
http://htmlhelp.com/reference/html40/block/p.html
You'll see "contents:inline elements" -- which is why it's invalid to put a P inside a P, or a DIV inside a P, and why you're supposed to close your P to clearly mark the beginning and end of a grammatical paragraph.
HTML 5 is TRYING to throw the structural rules out the window so you can nest things any-old-way -- it's turning into a train wreck of ineptitude because browser support even in allegedly HTML 5 compliant browsers is a mess. Across several dozen forums you'll find people asking "why doesn't this work" where they like have an anchor around a heading or paragraph, and when you say "You can't put block level inside inline-level" they go "but HTML 5 says it's ok..." 