Obviously you don't want samples that go on forever and you don't want a sample with just one wave period (can't have a chorus effect with one wave period), but most instruments go on forever without repeating themselves, so how do you go about artificially creating a loop point in a long sample?
The way I always did it—and I'm not saying this is the best way—is to load the sample in schism tracker, get an approximate loop point, play the sample at a some incredibly high pitch, and adjust the loop point by ±1 until I stopped hear the loop clicking.
Usually there's some structure that kinda sorta repeats, or wouldn't sound terrible if it did, and you can try to find optimal points to loop at. It helps to have software that shows you the waveform and lets you both edit loop points and play back the looped sample, so this step doesn't take forever. It helps even more if the software can give you an initial guess at the loop, though not all of the programs that can do that produce the best results on the first try. You may want to envelope the gain a bit if you're trying to loop a sample that varies in amplitude (a decaying sound, for example), so you can loop a roughly constant-amplitude section and add back the variance during playback.
You can improve the loop quality, or create a loop opportunity where there was none, by crossfading into an earlier part of the sample so that you approach the end of the loop with the same waveform seen right before the beginning of the loop - this should result in a seamless loop. It may also be possible to get a seamless loop by reversing and inverting a section, so that it ends up back where it started, but this may not always sound good even if you line up the zero crossings perfectly (and/or combine it with the crossfade technique). Some software can do this stuff automatically - I prefer to do it manually, zooming all the way in to the sample level so I can see exactly what I'm doing.
You have to watch out for phasing when you do a crossfade. It may be necessary to fiddle with the length of the fade, or even mess with the pitch. Varying the shape of the fade can help quite a bit here (use equal-power instead of linear, or just manually fiddle with offset/damping), as can post-fade gain enveloping, but there are phasing structures that are very hard or impossible to correct this way, so extreme measures may be required if you have a pathological sample.
In some cases, if the usable length of the sample is very short, it may help to use a time-stretching software to give yourself more room to work with. In such a case you'd probably want to carefully splice the unstretched attack onto the stretched sustain.
If you're dealing with something that has an existing repeating structure and you want to bake in a chorus or something, it's probably wise to ensure the two wavelengths have a fairly low least common multiple, so you don't have to use an inordinately long loop section to line both of them up.
If you have a lumpy sample, removing low-frequency noise may help you find a good loop point. Don't go overboard, though; it's really easy to accidentally shave a few dB off the fundamental even if you're being careful. You can usually repair the sample with a good EQ, of course, but only if you notice the problem...
SNES samples have to loop at multiples of 16, of course, but if you have a good sample rate converter (I use the free version of Voxengo r8brain) you can usually come up with a loop first and force it to be the right length afterwards, tweaking the result if necessary. The longer the loop, the less you have to change the frequency to do this.
Those are some of the things that occur to me when I consider the problem. I've been fairly inactive in the field for several years due to being busy with other things, so there may be newer tools and approaches out there.