Definition - Substituting a word or a phrase for a word or a phrase that both (1) sounds similar and (2) makes sense in the speaker's language. The result is often comical.

Example -

(1) Saying duck tape instead of duct tape
(2) Saying for all intensive purposes instead of for all intents and purposes

Etymology -
According to the Wikipedia: "The term was coined by Geoffrey Pullum in September 2003, in response to an article by Mark Liberman on the website Language Log, a blog for linguists. Liberman discussed the case of a woman who substituted the phrase egg corn for the word acorn, arguing that the precise phenomenon lacked a name; Pullum suggested using eggcorn itself."

To read the Language Log post where the term was coined, click here.

Please comment