According to legal statute an idiot is an individual with an IQ of less than 20, an imbecile between 21 and 49 and a moron between 50 and 70. As you cast around for insults it may be worth remembering these categories. But then again, the English language has never been short of slurs for the stupid.
Historically, you could have been a clumperton (mid 16C), a dull-pickle or a fopdoodle (both 17C); and more recently, two sandwiches short of a picnic, two wafers short of a communion or even a few vouchers short of a pop-up toaster.
Over the centuries, some other fine reproaches have included:
doddypoll (1401) a hornless cow, hence a fool
jobbernowl (1599) a blockhead
slubberdegullion (1616) a dirty, wretched slob
goostrumnoodle (Cornwall 1871) a stupid person, a fool