Using the GIMP it is an easy process to make seamless background images.
The background images on web pages are a good example of seamless images. They are generally small images which are tiled or displayed repeatedly by your web browser. This is very efficient mechanism as your web browser only downloads a single copy of the image.
Image 1: Tiled
With this image I have simply tiled the original image 4 times using the "Filters > Map >Tile" tool. Refer to the article on Automatically Tiling Images for more information on how to do this.
As can be seen from this example, a tiled images may not be seamless. It just looks like four copies of the image.
Image 2: Seamless and Tiled
The Seamless background is easily achieved without too much effort. Once you have created your background it is as simple as "Filters > Map > Make Seamless". If you have created your image using multiple layers make sure that you "Image > Flatten Image" into a single layer first otherwise you will only be applying the effect to active layer.
This is what our our seamless image looks like when it is tiled 4 times. Each image flows to the next without any noticeable joins.
Image 2 was re-sized "Image > Scale Image" down to 28 x 28 pixels. I then tiled the image to 200 x 200 pixels using the same method as in image 1. This simulates how a web browser would render the image as a tiled background.
Tip: When creating backgrounds. I find it better to start with a large image and downscale to the required size. That way you end up with nice smooth transition and reduce the jaggies.