Spot the difference:

21kb <--> 2kb

18kb <--> 3kb

11kb <--> 2kb
Part of the problem is that you had resized bigger images using HTML - so you load a big picture with more kb and then display it squeezed smaller. Why not make it small by throwing away redundant data?
You'd also squashed them - changed the dimension in the x axis by more than you did in the y-axis. Always prepare images outside your page the way you want them to appear.
The desk was a JPG which, with solid blocks of colour, won't compress very well. I converted it to GIF 32 colour (16 colour was smaller still and you could have gotten away with it).