Of course, you can start with any image you wish to be able to tile properly, whether it is one you have drawn or a photo you have taken. As an example, I shall make a seamless texture from this photo I took of some grass.
First, open the photo in Photoshop:
You need a perfectly square image to tile, so using the crop tool select a good area. Hold the shift key to select a perfect square and then press enter to crop the photo to the highlighted area.
Next, you need to adjust the image size to something manageable. I use 400 x 400 pixels. Go to Image>Image size, then type the size you want in either the width or height box- the other will change automatically. Press enter and the image may become tiny- don’t worry! Just remember to view the image at 100%. Next, go to Filter>Other>Offset...
And the following window appears:
Remember what size you set your image to? Well, now you need to input half of that value into the horizontal and vertical offset boxes. For example, my image is 400 x 400, so I typed 200 in the boxes. Leave the ‘wrap around’ option selected.
You will notice your image is offset half way, but the joins are obvious through the middle and centre. You now need to use the clone stamp tool to clean up these joins so they are no longer visible. Select the clone stamp tool (keyboard shortcut S), and make sure you have a soft brush. Hold down the Alt key to select the area you want to clone (somewhere in the middle of one of the sections). Release the Alt key and you can paint that area over the joins. Do this until you are happy with the image.
You can see the image is now a lot more consistent. You may want to offset this again- repeating the process will make the texture even more seamless. I offset the grass image three times to make sure it is as smooth as possible. Be careful however as the clone stamp tool can leave areas a little blurry, so you may lose some detail each time you offset. Finally, I edited the contrast, hue and saturation a little to make my grass brighter and have a bit more definition.
Lastly save the image as a JPEG (.jpg) file. The texture can now be seamlessly tiled for use in other applications!