It's avocados. You don't spell tacos as tacoes.
... but you do spell the plural of potato as potatoes
If I am not mistaken, Avocado is a Spanish word, therefore its interaction with English grammar is not the same as a word like "potato."
Potato and tomato are also from Spanish so that argument is invalid. I've been trying to work out why this is so. All three come from the Andes region so why do we put an 'e' with the two and not with avocado? Weird. I don't really understand the difference between heroes and zeros either. /shrug. The English language is weird, though!
I would suggest it is the timing of entry into the english lexicon. Potatoes and tomatoes have both been around in english much longer than either tacos or avocados.
I would agree with cmn, potatoes and tomatoes entered into the english lexicon prior to a widely distributed dictionary or the eventual effects of print media. Where the recorded word is almost immediatey transfered to print and distributed to the masses with no time for the word to pass through hands of several members of the english teacher or professor community.
The Spanish word for potato is "potata"; for tomato, it's "tomate." They do not end in "o" as taco and amigo, literally from Spanish. As I understand it, avocado came from the West Indies, but the rule is that the same words ending in "o" from foreign countries just add s, no matter what the penultimate letter (consonant or vowel) is.