Here's a little web trick that I've used (it should still work, but I haven't done this in years).Suppose you have a page with mostly textand a link to another page which will contains a large picture. Text loads pretty fast, but takes some time to read. You can load the picture fom the next pagein the text page with a height=1width=1 in the img tag (you might even be able to make it zero height and width). This makes the picture tosmall to view, but loads it into the users cache. When they open the next page, the picture should be almost instant, if they were on the first page longenough for it to load. Even if it didn't load fully, it doesn't have to start from scratch, it continues where it left off.You have to be careful aboutwhere you put the photo so it doesn't stall any other graphics or text from loading or mess up the overall look of the site. I can't remember the exact protocol, but you can try putting itat the top or thebottom and see what happens. Just make sure the src is the samefor both.
Bill is right on with Save for Web. Here are some other thoughts.
Sometimes speed is a function of your web server and its connection to the net. Not a whole lot you can do about that.
Sometimes speed is a function of the web page you use and its code. For example, if your (or your web creation application) specifies the physical size of the image in the IMG tag, then the page can continue with layout while the images load. If not, sometimes the images must be downloaded before anything else can be shown on the page. (See http://www.w3schools.com/tags/tag_img.aspfor information about optionalattributes in the IMG tag)
Another thing that can affect image size is the image's complexity. You may not have a lot of control over that, but, if, for example, you have a product that's been placed on an extremely compex background (let's say, a rainbow with a wave pattern), the JPG compression isn't going to be able to shrink that file much without causing severe data loss problems. On the other hand, if the product is on a white background, the JPG compression can work better and the resulting image size is smaller.
If you have specific examples you can show us (i.e. original image, compressed image, attempted file size) post them, and that will give us a better idea of what you're doing.