I've been using the trial version of ColorID for this. With the trial you can set personalized colors for just two contacts, but then all of their phone calls/SMS/MMS/emails, etc will blink in their color. If you purchase the app you can set colors for all of your contacts.
berrybuzz. it's amazing, and lets you change the LED for every type of message. but it costs. there is a free version that lets you customize your calls, and that's it.
you will not find a free program for full options.