Update: There are a lot of specifications out there and it is not totally clear which browsers use which one (to me).
Maybe someone else has more insight...
But in any case, Element is a more generic interface than HTMLElement and the latter inherits from the former.
Update 2: A nice way to see the inheritance structure is to execute console.dir(elementReference) for any element (works in Chrome/Safari, needs Firebug for Firefox).
HTMLElements inherit from Element which inherit from Node.
This means that your HTMLElement is simultaneously an instanceof all three. The fact that it is an HTMLElement means it has an interface that's contains methods only an HTMLElement would need like attachEvent.