A good government isn't blindly democratic but it rather balances the majority with the minority. Because of this, any election based purely on popular votes will lead to tyranny by the masses. The solution is to break up the states into, as has been mentioned, electoral districts, each with only 1 vote. The districts themselves would be determined by both geographic location and population. To give an example, New York city might get 4 electoral districts to itself while the rest of the state might get about 4-5. This would prevent only a handful of population centers forcing the rest of the state into serving its own interests. Or, if you prefer, take California, which is actually heavily Republican except along the Coast where there are a few metropolises with giant populations, which vote heavily Democrate (mob mentallity, I say). That isn't particularly fair to the majority of areas in California, the interests of only a few groups of people (though, admitedly, large groups) are being served at the expense of everyone else. The Senate is based on this same principle.
The only drawback (if it can be called a drawback) is that under such a system the Democratic party would be broken like a kit-kat bar, though at the same time it would open the doors wide for (responcible) 3rd parties.