Emily poisoned Homer because she did not want him to leave her. Even though he died, she kept his body in a bed upstairs and evidently laid next to him because a long gray hair (hers) was found on the pillow next to him. She could not accept that he would not marry her even though she knew he was not the marrying kind. She also could not accept her father's death; the townspeople had to come into the house and take his dead body for burial.
I believe Emily poisoned Homer in order to keep him from leaving her. By the time she meets Homer, her father has passed. She is left alone because her father drove off any potential husbands. Since she is getting old and is unlikely to find another man who will marry her, she becomes desperate when she realizes Homer, who "wasn't the marrying type", is planning to leave.
Emily is terribly afraid of being alone for the rest of her life, so she poisons Homer in an attempt to keep him. And she does just that. She keeps him much like a girl keeps a rose given to her pressed between the pages of a book. She preserves him in her rose-colored bridal suite. Her murdering Homer was an act of desperation--and an attempt to avoid her loneliness.