Etymology
Today it means: A goofy, inept but lovable person; a term of endearment. Full definition →
From Tommy + boy.
Etymology from Wiktionary, CC BY-SA 4.0.