A good, free site for photo hosting is
photobucket.com. They have several tutorials about how to get your images online, like
this one. The free account should work fine for your purposes.
Most photo editing software has a resize function, which will resize (or "resample") your image to make it smaller. You usually specify the new size in inches or pixels (dots). The easiest way to get the hang of this is to play with it a bit -- resample some images and see what you end up with. Use the "undo" function if you don't like what you get.
But, the easiest way to get small images is to do it at the camera end. Every digital camera lets you change the image resolution, which is the major factor in determining the picture size you get. So, you can take low-resolution pictures if you intend to post them on the web. A 640x480 image would fit very nicely on a site like this. (A 5 megapixel image is enormous and there's very little reason to ever take high-res pictures like that for most people.)
Hope this helps a little!