Simply put, a web server primarily supports communication in HTTP protocols or other internet related protocols like (FTP/HTTPS etc). but the Application Servers go beyond that, including support of the RMI - IIOP protocols, and for example BEA uses propreitory t3 protocols. the second major difference is that the web servers work on a request response pardigm while the Application Servers you can exchange Remote Objects which are Java Objects / Components (Like EJBs, Messages, Corba client support etc).
Apache Axis (for Web Services) cuts into the difference and helps theoritically make J2EE webservers into application servers by providing support to web services, where the client can exchange "Serializable / Deserializable" Objects using Simple Objece Access Protocol (SOAP). Axis is just another Servlet Application running in the context of the Webserver and this is possible because SOAP depends on the HTTP. Of course, these differences are personal feelings, have not researched on this. some one could still give a more technically correct info on this. Thanks