OK, here's the deal...
There are gapless-friendly and gapless-unfriendly file formats. Ogg and APE are friendly. MP3 is unfriendly.
What this means is that the MP3 format itself adds silence where it should not exist (something about end frames, I think).
Now, for gapless-friendly formats, it's pretty simple to solve, you just have to keep the playback buffer full, as someone said.
For gapless-unfriendly formats, it's trickier. You have to analyse the audio, detect silence (below a certain threshold) and eliminate it, to achieve gapless playback.
In MC, when you set playback to gapless, you get a solution that works for gapless-friendly formats. In order to get it working for gapless-unfriendly formats, you have to set another option, the silence removal one, which unfortunately also removes silence inside songs. I've asked JRiver to separate the two, but I guess they haven't seen it or haven't had time yet.
Now, this silence removal in MC is almost perfect, but there are some badly encoded MP3's out there that still don't get exactly gapless.
There is one other problem with gapless in MC. If you set the output format option on, silence removal seems to fail between files. At least it does when I change the sampling frequency to 48kHz...