What they share
Both are Latin in origin, both are two syllables, and both have been worn by saints, popes, and scholars for centuries. Both feel modern in current use despite their age, and both avoid the formality that longer classical names can carry.
Pick Leo if…
Pick Leo if you want the stronger, more direct name. Leo means 'lion' and lands with a clear, confident vowel. It works as a full name in its own right or as a short form of Leonardo or Leopold if you want a longer given name on paper.
Pick Felix if…
Pick Felix if you want the lighter, more playful sound. Felix means 'happy' or 'fortunate' in Latin, which is hard to argue with as a gift to a child. The final consonant gives it a crisper edge than Leo, and it carries a slightly more bookish feel.