You need to understand that there are any number of definitions for these terms around. Unless we all agree exactly which definitions we use we have only commonly used terms, about which there may be disagreement what they mean.
What is generally agreed upon is that Tomcat is a web server and a servlet container. In the sense that it can serve
Java web applications it is also an application server. JBoss, on the other hand, can also server JEE applications, which makes it a different kind of application server.
The term that seems to cause the most confusion is "web container", which is why I encourage people not to use it.
This page may also help clear up the confusion:
WebVsApplicationServer [ September 21, 2008: Message edited by: Ulf Dittmer ]