the Mysql manuals is quite very clear about it i think, but here is a short explanation :
Indexes are used to make big queries return the result faster.
if you often search a table using id or using date_creation,
it woudl be good to put primary index on id, and antoher index on date_creation.
when you query that table, it will use the index to find the result, instead of browsing all the table.
the drawback is that the more indexes you have the slower the insert and updates on that table.
check what indexes you need based on the query you execute the more often, then and do some benchmark to see if you adding that index really increase your performance.
also when executing a select with join, indexes can be used to increase by far the speed.
use explain to see if your indexes are well made.