I think I can answer that.
Most games use an audio engine that is tied to the NES's frame rate, which due to the way the NES is clocked is something like 60.0988... fps. This means that each "tick" of the audio clock is 1/60.0988, or 0.016639... seconds.
Each beat has to be a whole number multiple of that length, and if you want to divide the beat nicely into 1/16th notes it'll have to be a multiple of four. (For consistent 1/32th notes you'd would need a multiple of eight, etc).
Doing the math....
16 ticks per beat = 225.3705 bpm
20 ticks per beat = 180.2964 bpm
24 ticks per beat = 150.247 bpm
28 ticks per beat = 128.783 bpm
32 ticks per beat = 112.685 bpm
36 ticks per beat = 100.165 bpm
I'm pretty sure that covers all of the common NES tempos.
EDIT: I forgot to mention: you're not necessarily bound to using an even number multiple of ticks. If you're willing to sacrifice some accuracy (in the sense that all of your shorter notes are not the same length) you can hit tempos that fall in between the ones I've listed about above. Offhand, I can't think of any games that do that, but I use that technique in Marshall Art songs from time to time...
All of the above applies to NTSC games only. PAL games use 50.something fps so the tempos a PAL console can accurately hit are different.
Some emulators round the frame rate to either 60.002 fps or an even 60 fps. As well,
some NSF files override the default refresh rate (which some players ignore) so depending on what software you use you'll get different results.
EDIT2: Brad Smith tells me that nearly all NTSC NSFs specify 60Hz in their timing field, instead of the more hardware-accurate number. If the NSF player you're using actually uses that timing value, it'll play marginally slower than the actual game would (150bpm instead of 150.247bpm, 180bpm instead of 180.2964bpm.)
Things like the PowerPak apparently use different timers for NSF file playback, so again you can see slight variation between playing an NSF file versus playing the actual game.
It is also possible to choose arbitrary engine speeds. Famitracker for example lets you choose anywhere from 30-400 Hz. Not all NSF players support that, and I don't know of any games that do that either.