Indexes are just like an index of a book. Imagine you had a recipe book, and you wanted to find out how to make an omelet, you'd simply skip to the back, find the word and its page number, and skip to that page number. Now imagine you had no index and had to search through 400 pages of recipes, what a nightmare!
Indexes have several types Primary Key, Index, Unique, Fulltext
Primary Key is considered your main index, the first place mysql goes to find a record. Most people use an auto incrementing integer field for this since it's generally unique on each row.
Indexes are considered your secondary primary keys, you place these on fields that you want to be able to search for quickly.
Unique keys are similar to indexes however they work by ensuring that you cannot place duplicates in that column, eg you cant have the word 'eggs' appear in the same column on two different rows.
Finally Fulltext is a special index used by mysql's MyISAM storage engine only, it is used for searching your records using human phrases. without going into too much detail its mysqls own search engine, a more advanced version of the LIKE sql command.
For example if i searched for 'eggs and butter', fulltext would search for records containing eggs, butter, or both. where as LIKE would simply search for strings containing 'eggs and butter'
I hope this helps, the mysql site has plenty info on the subject, but this gives you the general gist of it.
Happy coding :)