It's in Morgoth's Ring, Book 10 in the History series. In the section discussing the laws and customs of the Eldar. Soon after birth the father had the right to name the child. This was the father-name. The Noldor had a custom where the child could later choose their own name. Usually this happened around their 10th year. This was the Chosen-name. The father-name was public, the chosen-name was private and only used among friends and family. Then there was the mother-name, sometimes given at the same time as the father-name. This was usually a name of some insight or foresight. One of the best examples of this is Fëanor. His father-name was Curufinwë, his mother-name was Fëanáro. It is said that he took the later also as his chosen-name in honour of his mother. Of course Fëanor was the form used in the speech of Beleriand.
"You can't fight the Enemy with his own Ring without turning into an Enemy" - J.R.R. Tolkien, Letter # 81
All correct, though it's worth noting that this is applied to the Noldor in the texts, with a few notable exceptions. And while the mother-names and father-names were fixed and wouldn't change unless linguistically (for example, Finwë's name being Hwinwë in Vanyarin Quenya, or the Sindarin name Maglor being Makalaurë in the original Quenya), self-names could be chosen anew if the person in question felt it was time for that. While not an elf (but his family being allied with Fingon, and him being fostered at the court of Thingol in Doriath), Túrin seems to have followed that custom, going by Neithan, Gorthol, Agarwaen and Turambar in a rather short period of time. There also were nicknames that could be given by others, not necessarily with the knowledge of the person they denoted - Túrin's being (with his knowledge) Thurin, Adanedhel and the Mormegil. These weren't true names unless accepted as such. This happened with Aragorn, for example. He translated "Strider" into Quenya and founded the royal house of Telcontar, which quite probably counts as acceptance.
(And, because I've seen this so often that it counts as a bona fide pet peeve, Legolas' nickname is not Greenleaf. It's a translation of his name. We don't actually know if he had any other names, or if so, what they were.)