Separate out the problem: is it a Timezone misconfiguration, or a time configuration? You can use a couple of tools, date and zdump to determine this.
If date reports the correct UTC time, then you know the problem exists in the timezone setting, rather than in the internal time setting.
$ date --utc
Fri Jun 28 14:02:43 UTC 2013
Fri Jun 28 10:02:45 EDT 2013
zdump will print the current time (pulled from the internal UTC time) in the zone for each timezone specified
$ zdump /usr/share/zoneinfo/Europe/London /usr/share/zoneinfo/GMT
/usr/share/zoneinfo/Europe/London Tue Jun 28 15:02:49 2013 BST
/usr/share/zoneinfo/GMT Tue Jun 28 14:02:49 2013 GMT
If the Europe/London zoneinfo file produces the same time as the GMT zoneinfo file, then either the contents of Europe/London or GMT are incorrect. I'd be surprised if this is the case, but if so, look to either reinstall the file from rpm, or otherwise correct it. I believe there are programs available to read and output the zoneinfo contents, but don't know them as I just wrote my own that does it.
If you reach the case that the internal UTC time is correct, and the zoneinfo file is correct, but date still reports GMT, then the setting for localtime is incorrect or stale.
man tzset will tell you more than you want to know on how the local time conversion happens, but do an
env and look at the settings for environment variables TZ, TZDIR. Finally compare the localtime config file with the desired setting: with
cmp /etc/localtime /usr/share/zoneinfo/Europe/London