HTML 2, HTML 3.2, HTML 4, HTML 5 - all versions of HTML (runs in all web browsers)
XHTML 1, XHTML 1.5, XHTML 5 - all versions of XHTML (runs in all modern web browsers, doesn't run in IE8, Netscape 4 or other early browsers).
HTML 2 through 4 are defined using the SGML standard
All versions of XHTML are defined using the XML standard which itself is defined using the SGML standard.
HTML 1 and HTML 5 are not defined according to any standard.
While XHTML can sometimes be run as HTML (if you only use a selected subset), HTML can never be run as XHTML.
With HTML the browser is supposed to try to fix any errors in the markup as best it can. With XHTML the browser is supposed to stop trying to display the page when it finds an error.
Many tags that are optional in HTML are mandatory in XHTML - eg. <head> <body> <tbody>
HTML has singleton tags, XHTML doesn't:
<br> - valid HTML but invalid XHTML
<br></br> - valid XHTML but invalid HTML
<br/> - valid XHTML, invalid in HTML but HTML can ignore the invalid / and keep going