When you extend a SharePoint web application, you are telling SharePoint to go to IIS and create a new site, but SharePoint will use it to show the same content. You would normally do that to support different security, authentication and URLs between an Internet site, Intranet and Extranet, for example.
When you add a host header it is equivalent to going to IIS and modifying the HTTP bindings for a site, and adding another URL or port. Generally, for simplicity, it is best to let SharePoint manage IIS and not go changing things in IIS Manager if you can avoid it. Host Header site collections are a mechanism to allow you to map different host headers to individual site collections within the same SharePoint web application.
The purpose of alternate access mappings is to deal with the situation where you have a load balancer or a proxy server that translates from an external URL to your server's internal URL. This ensures that the relative URLs generated by SharePoint when rendering pages are consistent with the external URL. Configuring alternate access mappings does not automatically add host header entries.