Теория:

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