This week's book giveaway is in the OCAJP 8 forum. We're giving away four copies of OCA Java SE 8 Programmer I Study Guide and have Edward Finegan & Robert Liguori on-line! See this thread for details.
You can try using multiple tomcats with load balancing approach. The load balancing can be done using storing images based on some algorithm into different tomcat servers. And then use Apache server at front (using workers module) which will connect to multiple tomcat servers (e.g. using mod_proxy ) based on URL regex.
If possible, you can host the banner images (If they are not coming from a backend source) in Apache server. Its faster and ideal for hosting static content.
Before you go for a Tomcat cluster (which makes the setup more complex and requires additional hardware) you could try to make better use of caching features in browsers and proxy servers.
I've created a Servlet filter some time ago which sets and rewrites HTTP headers depending on the content type of a request. This way you can control which resources should be allowed to be cached by browsers and/or proxy servers. I'm not 100% sure if this is still true for current Tomcat versions but the one I had used in this project didn't set the HTTP headers correctly by default. This COULD already be enough reduce the load on your server. Unfortunately I don't have this code anymore. Basically it's not very complicated to implement but of course IE (at least up to 6.x) requires special settings because it doesn't implement the HTTP protocol correctly
If this is not enough to reduce the load you will most probably have ti use more hardware and servers as Parampreet pointed out.
I hope this will help you. If you have more questions, just feel free to ask.