Every time you make color, brightness, and contrast adjustments in the GIMP, you destroy information. Therefore, it is preferable to properly set the white balance and exposure settings in the camera before taking the picture. There are several methods for setting the white balance:
Unfortunately, if you are in a hurry or are otherwise distracted, you might forget to set the white balance and end up with a color cast in your picture. Fortunately, there is a simple technique to correct color casts with the GIMP.
Here is an example of a particularly bad color cast. I forgot to set the white balance first, and the picture ended up with a strong orange cast.
To correct the white balance, you first need to find a white reference in the picture. For this picture, I picked a spot on the closet door in the background.
The Bayer filter pattern used in most digital cameras contains a grid of red, green, and blue filters. In each 4x4 square of sensors, there are two green, one red, and one blue filter. Since there are as many green filters as there are blue and red combined, assume the green channel contains the most accurate color values.
Make a mental note of the green value. Here it is 148.
Since color casts are linear functions, the key to correcting them is to adjust the color curves using straight lines for your white point. Since the spot on the closet door has a red value that is practically maxed out, all I need to do is adjust the end point of the red color curve down to 148.
The spot on the closet door has a blue value of 87. Therefore, I will create a midpoint in the blue color curve at x:87, y:148.
Now I need to adjust the endpoint to make the blue color curve a straight line. In this picture, the endpoint needs to be moved left to about 145.
The picture is now color balanced. The red, green, and blue values on the point on the closet door are nearly equal.
Although the picture is color balanced, I can further improve the image with a few tweaks.
Increase brightness by adding a point to the Value color curve at 148, 175. This brightens the image, especially in some of the lowlights. (You could also accomplish the same result by adjusting the gamma in the Levels tool to about 1.2.)
Increase contrast by 15.
Although the closet door is white balanced, the skin still has a slight red cast to it. Desaturate the red channel by 10 to make the skin tone look more natural.
Luca de Alfaro wrote a couple of Script-Fu scripts to automate color correction in the GIMP. His whitebalance.scm script greatly facilitates the process of color correction and is much easier than editing the curves by hand. Just use the eyedropper to pick a color that should be neutral grey/white, then select Filters/Colors/White balance. Set the mode to "Make foreground gray," press OK, and Boom! The entire image is color corrected.
His colortemp.scm script lets you correct the color balance when there are no white objects in the image. For example, often you can get an acceptable color correction under incandescent light by doing 3000K -> 6000K and desaturating the colors about 20%. The script installs itself under Filters/Colors/Convert Color Temperature.