Key difference being that he was a philologist, had a professor status in "English language and literature" and on top of that he was a professor of Anglo-Saxon. He also knew Middle English, Old English, Finnish, Gothic, Greek, Italian, Old Norse, Spanish, Welsh, and Medieval Welsh. And on top of that he was at the least familiar with Danish, Dutch, Lombardic, Norwegian, Icelandic, Russian, Swedish, Middle Dutch, Middle and Old German, Old Slavonic, and Lithuanian. So I'd say he was kind of qualified to make functional fictional languages.
Which also is a key difference, you can decipher Elrond into "Elf of the cave" if you do some digging. Elvish is a functional language (if slightly incomplete), you can at least believe that it belongs to a language you're simply not familiar with as opposed to most of those "cat walked over keyboard" names you see in my trashy fantasy novels.
Not to say that Tolkien's the be all, end all of fantasy, but I'm just saying that if you're going to come up with exotic names that you best make sure there is some reason and rhyme to it. Which is why I don't have much of a problem with Muggles, it could very well be an English slang word.