Analysis: The word "fool," unless you're Mr. T, is sometimes woefully inadequate to express the stupidity of the person you're talking about. So use Ninnyhammer. Or at least 'Ninny'.
Alternative: The English language is chockful of colorful words meaning stupid person, such as: DUMMKOPF, IGNORAMUS, JOBBERNOWL, GOWK, and WITLING.
For mental retardation, eschew the ubiquitous 'tard - rather, use AMENTIA (extreme mental retardation because of inadequate brain tissue), CRETINISM (mental retardation associated with dwarfism, caused by the deficiency of a thyroid hormone, a person with cretinism is a CRETIN), and MORONITY (used to mean mild retardation of having a mental age of 7 to 12 years, now it's an obsolete term though we still use the word moron
Guy #2: What a ninny!