It depends how detailed you want the material to be. The maximum size I have made (or can be made without wasting your time and processor power) is 1024x1024 pixels. But this size really ought to be reserved for materials like a large sample of brick or stone that can be repeated without any obvious tiling...something like maybe 20 bricks wide by 50 bricks high.
Other samples of textures can be much smaller. Most would be either 256x256 or 128x128; some can even be as small as 64x64. It is best to keep the sizes as multiples of 2 in this way, because they are more easily handled by the graphics processor....not a problem with one or two materials, but if you have dozens of them any small delays can multiply.
In order to get some materials of a specific aspect ratio to tile seamlessly, you may not be able to have both dimensions conforming to these sizes, so just choose 1 side and let the other be whatever it is.