You often hear Gaelic speakers say that somebody has Gaelic or they have some Gaelic or no Gaelic and so on. Of course, what they mean is that somebody speaks Gaelic or some Gaelic, etc. The use of have instead of speak is a reflection, a calque if you like, of the Gaelic way of expressing an ability to speak a language. In Gaelic you don't speak languages, you have them or to be precise, languages are at you because Gaelic hasn’t got a simple verb 'have' and instead possession is expressed by saying that something is at (aig) you.
So if you translate the title of this writeup back into Gaelic, you get:
Tha Gàidhlig agam. (literally 'is Gaelic at me')
(Note VSO word order and the inflected preposition (agam), i.e. two of the most important distinctive features of Celtic languages.)
I like the idea of having a language rather than just speaking it. It suggests that the language is part of you and who you are, and therefore you have a closer and more long-term relationship with it. Either that or I really am pathologically possessive.
It's been pointed out to me by Augustine and hapax that some English speakers also talk about 'having' a language. hapax informs me that it's "an old-fashioned/academic way of speaking she’s heard all her life". (Mòran taing for the comments.)
I don't think I've ever heard an English speaker say that somebody has a language (unless he or she was also a Gaelic speaker as I've observed in my writeup), which makes me think that the use of this construction is limited to certain registers, e.g. 'an old-fashioned/academic' register. Therefore, I'll stand by my view that when it comes to an unmarked everyday bog-standard usage, an ability to speak a language is expressed by 'speak' in English and by 'have' in Gaelic.