I second Duncan's request for info on how you are currently doing it Matt.
Until then, simple steps in Photoshop...
1. Select menu item Image->Image size...
2. Check the boxes "Constrain proportions" and "Resample Image".
3. Select "Bicubic Sharper" from the resample drop-down. I used to use Bilinear and then apply extra sharpening afterwards, but with CS2 and CS3 have used Bicubic for most web images and get favourable results with most images.
4. Type the width (or height) you want the longest edge in the relevant box at the top. For example, I would type 800 in width for a landscape orientated image.
5. Click OK
6. Apply a little sharpening (e.g. USM)
only if it needs it...
7. Save as JPEG and adjust the quality to adjust the final file size (or save for web and adjust the quality to adjust the final file size.