As part of my organisation workflow I like to scale down images where the quality of the photo is not making the most of the resolution (due to camera shake, low light graininess, or whatever). Is there any tool to help me achieve this?
You could use python and one of a number of libraries, (such as SciPy/Numpy), to get a measure of the noise in the image as shown in the answer to this Stack Overflow question. Some of the same libraries and also perform image scaling and denoise e.g. SciKit Image has both denoise and scale image functions. You could also take a look at the python integration with the OpenCV project tools.
Once you have a script that works reasonably reliably you can use the marvelous os.walk function to work down through a directory tree finding files and processing them unattended.
One important word of advice - Back Everything Up First! - A writable DVD costs pennies and can store 4.7 Gigabytes - that is a lot of images - a terabyte portable drive is under £70 here and is even quicker to use. All the above tools are Free - both Libre and FOSS but if you replace the only copy of an image with one that you have damaged then the price could be high.