From what I can hear if your songs were encoded with LAME, then iTunes does the gapless playback completely seamlessly. This most probably means that iTunes is reading the gap value that LAME appends to the MP3 header.
However for files which weren't encoded with something like LAME (i.e iTunes MP3s, possibly AACs), iTunes performs a gap delete. Pretty much this means it analyses the waveform of the audio and removes the silence between the tracks, but it doesn't sound quite as good.
So, my point is, that if your files have been made with an encoder that supports gapless (LAME MP3, Nero AAC...) then iTunes will automatically play them gaplessly. If your files weren't made with a gapless encoder, you have to tell iTunes to play them gaplessly.
At least, thats what I can tell so far...