I am looking at running a java application server on my debian linux webserver, and am looking for a breakdown of the advantages that using either app server would provide me with (or disadvantages). I am using apache 2 as my webserver and have no problem using a non-free appserver if it will provide a better environment in which to work. This will be used for a reasonably simple set of applications.
Don't forget to consider Jetty. I like very much:
Check this comparison out, it's done by a Jetty dev, but it's very fair.
Some other comparisons:
Glassfish is an application server as it handles EJB requests (EJB Container) while Tomcat is a Web Container - it can't handle EJB components. So, what are the components of the application you plan to run. If your application uses Servlets and JSPs, then GlassFish is an overkill. If you have EJBs then you can't use Tomcat anyway. So, I think it starts with your requirements first.
Tomcat is a decent enough web server for the smaller scale applications. Glassfish, JBoss, Websphere, etc. are heavy weight application servers that support the EJB standard and many more advanced features out of the box. If you want to use Enterprise Javabeans in your application then Glassfish or similar application servers are the way to go; if you only want to develop using servlets & JSPs or possibly a POJO based framework like Spring, Tomcat may be more than enough.
GlassFish is a collection of Java EE containers, one of which is a Web container, Tomcat is just a Web container. so it's really hard to compare with them. In fact GlassFish has some feature which tomcat didn't supported. like: Modular architecture based on OSGi, Image Packaging System
You may check out here Tomcat vs GlassFish comparison article