There are at least twelve, as there are twelve different vowels in Portuguese.
But then English has a similar number of vowels, which in great part do not overlap with Portuguese vowels. So, just considering those two languages (admittedly two cases of large vocalic repertoire), we would be close to twenty - and neither include the umlaut sounds that are common to French and German.
Now: some English vowels are close enough to Portuguese vowels that if they are used instead of the correct vowels, speech is still intelligible. This means that Portuguese speakers would consider those vowels merely different vocalisations of the same vowel: differente phones but not different phonemes, in other words.
Vowels make up a continuum: if they are close enough, they become indistinguishable. But that "close enough" clause is cultural: there are languages that have only three vowels, /a/, /i/, /u/. To speakers of those languages, /o/ or /e/ are just /u/ and /i/ pronounced with a foreign accent. An Italian or Spanish speaker cannot distinguish the two "e"s of Portuguese; a Portuguese speaker cannot produce the Italian /e/ (wich is an intermediate between the two Portuguese sounds). A language with all those three sounds would probably be difficult, because they would be too close to each others.
So, the answer to your question is probably the following: the number of different vocalic sounds that the human ear can distinguish (in normal conditions, ie, we are not talking about professional musicians or linguists, or poliglots versed in several languages) is variable and determined by the language the human in question speaks.
There is another problem: vowels usually differ in timbre (that is the difference between /a/ and /e/, or /i/ and /u/, for instance). But in some languages duration is phonemic, meaning that /i:/ is a different sound than /i/ (that's how Portuguese speakers will figure the difference between "sheep" and "ship"). So, are long and short "i"s different vowels? Still other languages have phonemic pitch, meaning that a high-pitch "a" contrasts with a low-pitch "a" (or more commonly an ascending "a" contrasts with a descending "a"): are those the same sound, or different ones?
(I have read that Danish has 32 different vowels - including differences in duration -; if this is true, then it must be close to the upper limit of what a language can feature as different vocalic sounds.)