Irfanview has one of the best compression algorithms that gives maximum compression sacrificing minimum quality. If you don't want to go through the hassle I would suggest this guide instead which is 100 times simpler, though I still recommend Irfanview because it also allows you to do photo enhancements at the same time.
1) Open any picture with Irfanview. I'll use the sample picture below(click to view full size):
2) With the picture opened, press 'Ctrl + R' on your keyboard(or click 'Image' -> 'Resize/Resample...')
3) Use the settings as below and click OK. (important ones are highlighted in red)
4) Now that your digicam photos is resized, we need to save it in Irfanview's jpg compression format. Press 'S' on your keyboard (or click 'File' -> 'Save as...')
5) Type in any File name, and for 'Save as type' choose 'JPG - JPG/JPEG Format'. You will see a small window on the right hand side, use exactly the same settings as below, and click 'Save'!
6) The red box above show the most important setting, basically if you use lower value, the quality will reduce with the file size, I found that the best value is around 75-80, which reduces file size a lot without noticing any difference in image quality. Feel free to try different value :)
The two pictures below show before and after compression, one is 762kb and one is 145kb. Can you see any difference in quality?
Note that in this example I retained the same resolution. By reducing the resolution in Step 4, the file size can be further reduced. This is very useful when digital cameras nowadays can take pictures up to 4000x2000 pixels resolution!
IrfanView is used in a series of guides in this site: