According to Denshi Jisho, いい and よい share the same kanji, and that both roughly mean "good". Why are there two different pronunciations despite the similarity, and what are some ways to figure out which one to use?
The original form is definitely よい, and that's what you'll find in old texts. As often happens with common words, the pronunciation was simplified a little in its most common form, the Rentaikei form (which is the dictionary form), and became ええ in western dialects (Kansai-ben) and いい in the Tokyo dialect, which serves the basis for Standard Japanese.
Today, いい is no longer considered colloquial, and it can easily be found in formal speech or writing, alongside 良い (よい). It is actually 良い which is now considered formal-only, and its effectively gone in everyday speech, and replaced entirely by いい in the Rentaikei, while all other forms are still conjugated as if the base form was よい.
The conjugation of いい is instructive here. If you want to use the past tense, the conjugation is よかった. You can't say いかった to mean "was good". Furthermore, the first item in goo confirms that they have the same meaning.
goo also says that よい is the original word, but いい came about because it's easier to say. So I imagine it's a kind of slang from a long time ago that has simply grown to be acceptable.
I am not sure about the origin, but the difference in usage is you can use よい as another forms よくない、よかった、... but いい normally cannot in Standard Japanese.
For what it's worth:
よい is an i-adjective and can then be modified like any other adjectives in い
いい is an adjective that can be used as:
->That's an interesting idea.
->That idea is interesting.
Thus like any -ing adjectives cannot be modified.
ii and yoi use the same kanji but are usually written in kana. Origin of 好い 善い 良い is obviously Chinese with different nuances for each of them.
i believe that よい is the more polite form of いい. But it coudl also just be an ease of pronunciation thing that they are different.