C# handling of images - is this best for memory usage?
Reversing the condition of if (originalImage != null) and returning early will remove one level of indentation. The less indentation some code shows the easier to read it will become.  
catch to just rethrow, althought you did it in the correct way, doesn't buy you anything. Just remove the try..catch..finally and enclose the usage of graphics with an usage block.
Althought the code is mostly named well, one could stumble over tempPhoto and can't figure out at first glance wether this object is important or just temporary.  
You can cast e.g ((width - (sourceWidth * percent)) / 2) directly to int you don't need a call to Convert.ToInt16() here.  
percentW and percentH are first defined and on the next lines you assign a value to them. You should do it just at the declaration to save some (superflous) lines of code.  
Instead of graphicController.FillRectangle(Brushes.White, 0, 0, width, height); you should use graphicController.Clear(Color.White); which is easier to read.  
Comments, when used, should state, in a clear and understandable way, why the code is written as it is. I don't get the comment // The chances of hitting this ONE SPECIFIC COLOR are very slim. Where could be a problem with the code to make this comment justified?  
The code validates the Image originalImage method parameter, but allows "illegal" values for int width and int height.  


Implementing most of the mentioned points (validation is for you) will lead to  

public static Image ImageToFixedSize(Image originalImage, int width, int height)
{
    if (originalImage == null) { return null; }

    int sourceWidth = originalImage.Width;
    int sourceHeight = originalImage.Height;
    int destX = 0;
    int destY = 0;

    float percent = 0;
    float percentW = width / (float)sourceWidth;
    float percentH = height / (float)sourceHeight;

    if (percentH &lt; percentW)
    {
        percent = percentH;
        destX = (int)((width - (sourceWidth * percent)) / 2);
    }
    else
    {
        percent = percentW;
        destY = (int)((height - (sourceHeight * percent)) / 2);
    }

    int destWidth = (int)(sourceWidth * percent);
    int destHeight = (int)(sourceHeight * percent);

    Bitmap fixedSizedImage = new Bitmap(width, height, PixelFormat.Format24bppRgb);
    fixedSizedImage.SetResolution(originalImage.HorizontalResolution, originalImage.VerticalResolution);

    using (Graphics graphicController = Graphics.FromImage(fixedSizedImage))
    {
        graphicController.Clear(Color.White);

        // The chances of hitting this ONE SPECIFIC COLOR are very slim
        graphicController.SmoothingMode = SmoothingMode.HighQuality;
        graphicController.PixelOffsetMode = PixelOffsetMode.HighQuality;
        graphicController.InterpolationMode = InterpolationMode.HighQualityBicubic;
        graphicController.CompositingQuality = CompositingQuality.HighQuality;

        graphicController.DrawImage(
            originalImage,
            new Rectangle(destX, destY, destWidth, destHeight),
            new Rectangle(1, 1, sourceWidth - 1, sourceHeight - 1),
            GraphicsUnit.Pixel);
    }

    return fixedSizedImage;

}