http://www.hitsquad.com/smm/programs/SampleCalc/
or you can calculate it with a stopwatch and a calculator:
240 divided by the length of one bar (one measure from downbeat to downbeat) in seconds = BPM
You can get accurate BPM's this way if you start and stop the stopwatch right at the start and end of a 1 bar rhythm phrase. If the result you get is too slow multiply it by 2. If the result is too fast, divide the result by 2.
Another way to get the length of a measure you can load up a 1 bar loop of the song into an editor and look at the duration of the loop in seconds.
You can get extremely accurate BPM's this way.
If you use the mathematical technique I mentioned above, you can get BPM's precise to many decimal points. Trust me, I've been using those techniques for years. Use a calculator and you'll get really precise results if you know what you're doing.
This is important for synchronizing beats for absolute precision. If BPM's don't match by say for example 0.01 seconds, they will be synchronized at first, but eventually they will drift apart and it will become noticeable.
If both BPM's are precise to say, 3 or 4 decimal places, then usually things are OK for the length of a song. 120.000 BPM & 120.0001 BPM is probably ok for example, but 120.1 & 120 will drift apart much faster.
240 / {length of 1 bar (in seconds)} = BPM
240 / BPM = {length of 1 bar (in seconds)}
Actual Examples:
240 / 1.000 seconds = 240 BPM
240 / 1.71428571429 seconds = 140 BPM
240 / 1.94052297094 seconds = 123.678 BPM *
240 / 2.000 seconds = 120 BPM
240 / 2.1333333333... seconds = 112.500 BPM *
240 / 2.400 seconds = 100 BPM
240 / 2.500 seconds = 96 BPM
240 / 2.71560027495 seconds = 88.37825 BPM *
240 / 3.000 seconds = 80 BPM
240 / 3.42857142857 seconds = 70 BPM
240 / 4.000 seconds = 60 BPM
240 / 5.000 seconds = 48 BPM
240 / 6.000 seconds = 40 BPM
* = notice that you can do very precise BPM's