Apache is a web server and on its own just serves up static web pages. Though you can include modules that allow programming e.g. PHP and perl modules.
Tomcat is a JSP/Servlet container. This means it can do everythign Apache does in terms of serving up static pages but it will also process
JSP and
Servlets.
If Tomcat can do what Apache does why would anyone use Apache? Well Apache is highly tuned for its core role and of course many people want to use its other capabilities for server side scripting language. Does this address your question?