I have been using the SportCount Chrono 100 for many years. Its big advantage over the other methods discussed in this thread is that it doesn't require that you keep stopping to set it. It also gives you a total time for a set, an average lap time, a fastest lap time (and which lap it was), a slowest lap time (and which lap it was), and individual times for up to 100 laps (hence the name). You wear the watch on your index finger, and tap the button when you start and at the end of each length. After you stop, you press the button and hold it down, and it backs up to the end of the last lap and then lets you look at all the times.
I originally began using this watch when I was working on 800m freestyle. I was having to swim 35 lengths of a 25y pool (875y is approximately 800m), and while I could time myself using the second and minute hands of the pace clocks, it was hard to be sure at times whether I had counted the lengths correctly. I'd see an improvement in my time and wonder whether I had really improved or whether I had just miscounted pool lengths. I couldn't look at the watch while I was swimming, but at least when I finished, I could determine whether I'd counted correctly. It was also a lot easier than calculating my time from the pace clock, and it gave me lots of valuable pacing information.
The watch is available through the Store section of this site.