How can I delete old entries in locales_source
One way to get rid of unnecessary entries in locales_source is to run the following:

DELETE locales_source 
FROM   locales_source 
LEFT JOIN locales_target lt 
using (lid) where lt.lid is null;


To get an idea of what this will remove from the table, you could check using:

SELECT count( * ) 
FROM locales_source 
LEFT JOIN locales_target lt
USING ( lid ) WHERE lt.lid IS NULL;


I got the idea from : http://julian.pustkuchen.com/en/drupal-7-performance-blown-localessource-table

In my case, I had a lot of stale content in locales_source. I also had many pages where content was tagged as being translated, but the page included many call t('...') calls, which added unnecessary entries to the table. Long story short, I was able to safely remove over a million rows of data and site performance went from absolutely awful to humming along nicely. 

YMMV, but it worked for me.