To load balance your application you'll need to run two or more Tomcat instances with the same application. You could run two instances on the same machine on different ports (e.g. www.myapp.com:8080 and www.myapp.com:9090) or on different machines on the same port (e.g. www1.myapp.com:8080 and www2.myapp.com:8080). Usually the instances share the same backend data store. Each Tomcat is its own webserver, so you'll have multiple web servers running.
Because you now have two identical instances a user can use either of the two instances. They can also switch from one to the other if something happens to the machine they are currently using. But you don't want your users to have to choose a machine or swap manually. This is where a load balancer comes in.
A load balancer takes a request from the user and dynamically routes it to one of your load balanced instances. A load balancer is also a web server. It can be a hardware load balancer like a BIG-IP F5, or software like Apache, nginx or even another Tomcat server.
If you use an Apache web server to do the load balancing you'll need an Apache module to pass on the request to one of your Tomcat servers. Typically this is mod_jk or mod_proxy.
So the short answer is that if you use Apache as your load balancer then you have to use mod_jk (or mod_proxy). If you use another load balancer then you can't use mod_jk.
Also refer to Tomcat load balancer solutions