Howdy -- Apache is a web server, whose primary responsibility is to respond to HTTP requests (like GET (some file))
But to run servlets/JSPs, you also need a web "container", and that's what Tomcat does. Tomcat supports servlets and JSPs, and is also a very weak web server, but for the real world, you would normally configure Tomcat into the Apache web server as a "plug in". Then the powerful Apache web server accepts the HTTP requests, while using Tomcat to deal with the servlets/JSPs.
Apache alone -- powerful HTTP web server
Tomcat alone -- web container, with a very limited HTTP web server
Apache with Tomcat -- a powerful web server that supports servlets and JSPs