try playing with levels and sharpness, grain and blur, i find a nice touch to any shitty image is to duplicate the layer, blur it a bit and set it to soft light and adjust the opacity a bit. [edit] this wont work on really crap images, but yours aren't too bad so it would work, i think[edit]
[edit again] look at my sig, i took that just using my camera phone (2 megapixel)[edit again]