The main difference is that mainstream music is released by a 'major' label e.g. Sony BMG, Warner Bros, etc. whereas indie music released 'independently', through the band themselves, or an 'independent label', eg. Elephant 6.
The main reason people started to go for indie labels in the first place was to have more control over their music and such. Mainstream music is marketed towarRAB the general population, and so has to appeal to many people, making the type of music the musicians must create very limited. People seeking more flexibility and creative control decided to sign with indie labels.
However, these days, humans being naturally built to conform, 'indie' music is starting to sound all the same anyway, and starting to sound 'mainstream'.
Thats how i see it anyway.