Теория:

Омонимами (от греч. homos — одинаковый, оnyma — имя) называются слова, разные по значению, но совпадающие по звучанию.
Пример:
Гриф1 — фантастическое животное в античной мифологии;гриф² — у музыкальных инструментов, например: у скрипки;гриф³— печать, штемпель с изображением чьей-либо подписи, а также оттиск этой подписи.
В лексикологии изучаются два вида лексических омонимов: полные и неполные, или частичные.
Полные лексические омонимы представляют собой слова одного грамматического класса, у них совпадает вся система форм:
Пример:
коса - «вид прически», коса - «сельскохозяйственное орудие» и коса - «мыс, отмель»; заставить - «загородить чем-либо поставленным» и заставить - «принудить кого-то что-то сделать» и т.д.
Явление частичной (или неполной) омонимии характеризуется тем, что разные по значению слова совпадают в звучании и написании не во всех грамматических формах:
Пример:
пал - «лесной, полевой или степной пожар» и пал - «свая или чугунная тумба, к которой канатами прикрепляют судно во время стоянки (от гол. paal - столб, свая)». Во множественном числе эти слова имеют разное ударение: пал - палы и пал - палы.
К неполным лексическим омонимам относятся и многие совпадающие в звучании и написании глаголы:
Пример:
закапывать - несов. вид от глагола закапать (лекарство) и закапывать - несов. вид от глагола закопать (что-то в землю). Формы совершенного вида у этих глаголов различны.
 Причины появления омонимов в языке различны. Омонимами могут стать слова, вошедшие в русский язык из других языков и случайно совпавшие по звучанию. 
Пример:
Рейд1 — водное пространство у входа в порт, удобное для стоянки судов (от гол. reed) и рейд2 — набег подвижных военных сил в тыл противника (от англ. raid).
Омонимы могут возникнуть в результате звуковых изменений, которые происходят в языке.
Пример:
Так появились омонимы лук (растение) — лук (орудие); мир (вселенная) — мир (тишина, отсутствие войны); в древнерусском языке эти слова произносились и писались по-разному.
К образованию омонимов ведет распад полисемии: значения многозначного слова могут так далеко отойти друг от друга, что мы начинаем воспринимать их как разные слова.
Пример:
Лавка (скамья) — лавка (магазин); бумага (хлопчатник, пряжа) — бумага (писчая бумага) и др.
Помимо лексических омонимов (принадлежащих всегда к одной части речи), выделяются другие разновидности омонимии, а именно:
Омоформы — слова, совпадающие по звучанию и написанию в какой-либо одной или нескольких грамматических формах.
Пример:
печь (сущ.) — печь (глаг.); мой (мест.) — мой (повел, накл. глаг); пила (сущ.) — пила (прош. вр. глаг. пить); простой (прил.) — простой (сущ.); лечу (лечить) — лечу (лететь).
Омофоны — слова, разные по написанию, но одинаковые по произношению.
Пример:
луг — лук, пруд — прут, изморозь — изморось, гриб — грипп, вперемежку — вперемешку, бачок — бочок, развеваться — развиваться, компания — кампания.
Омографы — слова, которые пишутся одинаково, но имеют ударение на разных слогах. 
Пример:
мУка — мукА, замОк — зАмок, стрЕлки — стрелкИ, засЫпать — засыпАть, расплАчусь —расплачУсь.
Различать слова-омонимы помогает контекст. Явление омонимии часто используют в художественных целях как средство для создания каламбуров.
Пример:
Рыбачьей удалью блесну
И в речке возле леса
Поймаю щуку на блесну.
Эх, выдержала б леса!
Источники:
Гольцова Н.Г., Шамшин И.В., Мищерина М.А. Русский язык. 10-11 классы. Учебник // Русское слово - М.: 2011. – С.15.
Валгина Н.С., Розенталь Д.Э., Фомина М.И. Современный русский язык. -- 6-е изд., перераб. и доп. - М.: Логос, 2002. - С.12.