Next time you go to a website and it loads really slowly, copy the URL into Pingdom. Chances are, the thing slowing it down most is its images. I've seen sites where there was one small image that was actually 4MB - and it was loading on EVERY PAGE of the site.
So reducing image size and optimising it BEFORE we upload it to Wordpress is essential. There are plugins that do it for you, but I've never used one and like to control the process myself.
How To Resize
Let's say you grab a 4MB, 2000x2000 pixel image to use inside an article. You want to cut it to be 600 pixels wide.
You can do that on Picresize. Just drop the image in the box and hit continue.
Drag a rectangle around your image (if appropriate). This example had tons of white space around the image so I cropped that out. Note you have to drag the rectangle first THEN crop.
Choose what size you want. For in-text images I use 500 or 600 pixels wide. For headers it depends on the theme, but normally 800 or 1024.
Choose what format you want. Normally JPG is smaller than PNG.
The next screen lets you save the image.
Squash It More
Next I drop that image into TinyPNG (which does jpg too). This makes it even smaller.