- Who, Quis
- What, Quid
- When, Quando
- Where, Quo
- How, Quomodo
- Why, Cur
There's one exception on each side, but otherwise this pattern is pretty consistent. Is there a linguistic or etymological reason for this?
Both sets of words come from a Proto-Indo-European root *kʷ(o)- that probably marked an interrogative pronoun. In the Germanic languages, Grimm's Law spirantized this *kʷ into /xw/ or /hw/, which later merged with /w/ in many Germanic languages (Dutch wat, German was, Swedish vad, etc.), though not all: English has what (in some dialects still pronounced with and unvoiced /ʍ/), Icelandic has hvað /kvað ~ xvað/, and Norwegian is probably the silliest, having dialectal and lexical variation between /v ~ kv ~ k ~ Ø/ (the last only before back vowels).
In Latin, *kʷ remained in most words as /kw/ (written ⟨qu⟩), so we have quis, quod, quam, etc. from this root. Cūr is from the same root, but before a high back vowel /u/ the labial element in /kw/ was usually lost in Latin, so early Latin quōr /kwoːr/ (which regularly became quūr /kwuːr/) yielded cūr /kuːr/. Even where Latin kept the labial element in /kw/, though, it usually (though not always) disappeared in the Romance languages, the daughter languages of Latin, leaving just a /k/ as in Spanish que, Italian che, French quand, etc.
In the other branches of Indo-European languages, the development was generally as follows:
Greek: in the largest dialect group, Ionic-Attic, PIE /kʷ/ (mostly) became /t/ before front vowels (τίς tis ‘who’, τί ti ‘what’) and /p/ elsewhere (ποῦ ‘where’). In some other dialects, it (at least sometimes) turned into /k/.
Balto-Slavic: In Slavic it generally resulted in /k/ before back vowels and č /tʃ/ before front vowels (Old Church Slavonic čьto ‘what’, kъto ‘who’); in Baltic generally /k/ everywhere (cf. Lithuanian kas ‘who, what’).
Celtic: It became /k/ in Goidelic (Old Irish cia ‘who’, cid ‘what’) and /p/ in Brythonic and Continental Celtic (Old Welsh pwy ‘who’, pa ‘what’).
Indo-Iranian: In Sanskrit it was mostly generalised to /k/ (कः kaḥ ‘who’, किम kim ‘what’), though it should have yielded /c/ before front vowels; in Iranian there was no such generalisation, and it generally became /k/ before back vowels and /tʃ/ before front vowels (Avestan kō ‘who’, čim ‘what’)
Others: In Hittite and Tocharian, it remained /kʷ/ (Tocharian kus, kᵤse /kʷse/ ‘who’, Hittite kui-/kue-/kuu̯a- /kʷi-, kʷe-, kʷa-/). In Armenian it seems to have been irregularly weakened to /h/, which was subsequently lost: the generalized stem հի- hi- became ի- i-, found in words like ինչկ inč’ ‘what’.
[From StoneyB's comment:] Scots English employed /xw/ at least into the 16th century—and spelled it ‹quh›. See this question.
More specifically, you are seeing part of the sound change *kʷ > hw [xʷ] in Grimm's Law. Grimm's Law is a well known group of ancient sound shifts that affect all of the Germanic languages (not just English) and differentiate them from the Romance and Celtic languages that did not undergo the change. In fact, it can be argued that Grimm's Law defines the Germanic language family.
Grimm's law is also why English (Germanic) foot maps to French (Romance) pied and Latin pedis. The Proto-Italo-Celto-Germanic word underwent two consonant changes to become the Germanic form - the "p" morphed to "f" and the "d" morphed to "t".
To add to Cerberus's excellent answer that all the words have the same Indic root, one can still see English language inscriptions in Scotland where the said wh- words are written qu-. I can only cite personal observation in several churches in Edinburgh and I don't know whether this practice arose from a natural orthography, from a Scottish wish to differentiate oneself from the English, or from a wish to reaffirm Scottish-French solidarity (several of the examples, if I recall correctly, were from the time of Mary Queen of Scots).
Great replies! I once took a course on Celtic languages and learned that there was a division between "p-Celtic" and "q-Celtic". I mention these terms here, as I haven't seen them in the posting above (they might not be official terms though).
A clear example: in English we have father, in Swedish we have far, in German we have Fater (I think), in French we have père, and in Latin we have pater.
I guess this is what is referred to as Grimm's Law above.