Do I need to optimise images for smaller file sizes?
Drupal does this for you; check your ImageCache settings (look for it under admin/settings), since it basically runs ImageMagick or uses GD in the background to do the image conversions. There is a quality setting that should do what you need.

IIRC, ImageMagick does a good job. The external GD library when called from PHP apparently aren't as reliable, but the built-in GD also does a good job, I think. Ultimately, you have to test this to see if it meets your own standards.