This is a pretty standard trick that most people know, but I do a
slight variation that you may find useful.
Say you have
a texture fragment like this (This is a photo I took at Lake Mead)...
And you want to use it to tile (repeat) over a large surface.
This of course doesn't look even remotely natural because you can
see the seams (see the red arrows). So how to make the texture
tileable?
The first trick
under your belt should be the offset filter. Take your original image,
use the offset filter (make sure it's set to wrap around) and set it to
half the size of your image, in this case, my image is 400x400 pixels,
so set it to 200x200 pixels. You get this result.
Now use the clone brush to clone parts of the rock overtop of the
seam. You get this result...
Now it tiles nicely with no obvious seams...
This is a pretty standard technique, but one trick I like to mention
is be careful which brush you use to do you cloning. If you use a brush
that's too hard or too soft, you'll still have problems at the seams.
For example,
here's this hard brush...
being used to clone this image (the image has been enlarged so we
can see the details)...
Here's the result, notice how it's slightly better, but you can see
the hard edge of the brush...
So the answer is usually use a soft edged brush, but that can also
cause problems...
This is far better, but notice the details sort of fade into each
other in the seam area. So you get this big blurry mess in the middle.
This artifact is also be undesirable, so for
my work I use a chaotically shaped hard/soft brush, which isn't too
hard, isn't too soft, and is oddly shaped so that the eye can't pick up
on the brush strokes...
Also adjust the brushes parameters with a large "Angle Jitter", that
way each brush stroke will have a different pattern (since the brush
will be rotated a random value as you clone), and maybe some size
jitter (although it's not necessary).
This gives far more realistic results when you blend the seam away.
Here's the image at regular resolution, no blurry mess, no hard
edges...