Tomcat is primarily a
servlet container which extends the functionality of a web server. (Since a servlet container can't do anything without a web server, Tomcat includes its own web server for convenience.)
In
J2EE terms, an application server usually means it also has an EJB container. An application server handles things like database connections, lifecycle management, transactions and so on. I don't think this is necessarily a "legal" definition, it just seems to me that this is what most people mean when they say "application server."
Clearly though, you can build robust, scalable
Java applications without EJB. If you have Tomcat and Apache, for instance, using
Struts and Hibernate frameworks, would you call that an application server?