The biggest reason why England has failed is the manager IMO. Eriksson was great, I don't know why he was criticized so much.
The fact is, when coaching a national team, it is impossible for the manager to adopt a new style of play, and then tell the players to play according to that style. Simply because, international matches don't allow the players to change to new style of playing their football. They are best at doing what they do at their clubs. It's impossible for Lampard to play well in England, because he won't get the freedom in midfield he gets in Chelsea.
So, what a manager should do is to find a strategy so that he can accommodate the styles of all the players he has. This obviously means that he can't always pick Gerrard and Lampard in the same team because it's impossible for both of them to play to their 100% in a setup like this. You would normally drop Lampard as the formation in Chelsea (4-3-3) can't really be played in the national team. The coach should have the balls to do this, and pick someone like Hargreaves who can do a job like Mascherano in Liverpool, allow Gerrard to do what he does best. I am 100% if this happens, you'll probably see a different Gerrard playing for England. It's upto to the manager to find a strategy so that all players can fit in that strategy, and it is this sort of manager that England should look for now.