hi alex,
i'm doing that using ImageMagick (under Unix, but also windows works) in command-line-calls, because ImageMagick supports anti-aliasing for nicer thumbnails.
sample-call:
$my_org_img = "/imagestore/origfile.jpeg";
passthru("convert ".$my_org_img." -resize 100x100 ".$my_org_img.".100.jpg");
this results in an thumbnail fitting into a 100x100 pix box, named like the originial extended by ".100.jpg".