I’m not one to drop links, but for anyone on the bleeding edge of speed, you should look into CSS sprites.
The basic concept is simple - when you visit a webpage, multiple items are downloaded at the same time. But multiple does not mean all. In the case of 20 images, you could be loading 4 at a time.
The problem lies that a lot of the ‘overhead’ cost of downloading images is in the connection time. So every time an individual image is requested, a new connection is initiated (yes I know HTTP 1.0 vs 1.1, I am simplifying here).
So the solution is to bunch multiple small images into one larger image, and then use CSS to position show only the part of that image you want where you want it.
Unfortunately we don’t do this often enough ourselves, but it can make for an interesting improvement. A big user? Yahoo!’s front page.