Potential difference between two electrodes in an electrochemical cell In an electrochemical cell, let's say you have a zinc and zinc ion half-cell as well as a copper and copper ion half-cell:

The zinc electrode (or anode) dissolves into zinc ions while the copper ions accept electrons and get deposited as copper metal on the copper electrode(or cathode). The electrochemical cell works as electrons flow from the zinc electrode to the copper electrode, because as zinc dissolves it undergoes this reaction: $$Zn^{2+} + 2e^- \rightarrow Zn$$
Thus, leaving behind electrons on the remaining parts of the anode as some of the solid zinc metal dissolves into the solution to become zinc ions. These electrons then flow from the anode to the cathode as mentioned earlier.
Supposedly, the electrons flow from a higher potential to a lower potential, where the anode is supposed to be the electrode of higher potential and the cathode is supposed to be the electrode of lower potential. And, thus, the potential difference would justifiably be $$E_{\text{cell}} = E_{\text{cathode}}- E_{\text{anode}}$$
However, if you look at it this way: as the reaction progresses, positively charged zinc ions are left behind in the solution in the half-cell with the anode while negatively charged ions are left behind in the solution, in this case, sulfate ions as shown in the diagram.
Work needs to be done to bring the electrons from the anode to the cathode because the positively charged metal ions in the half-cell containing the anode are attracting these electrons while the negatively charged sulfate ions in the half-cell containing the cathode are repelling them, which would mean that the cathode instead would be of higher potential than the anode because electrons at the cathode would be the furthest away from the positively charged ion solution but close to the negatively charged ion solution.
Really, now I'm confused... how do electrons move from the anode to the cathode, if these electrons are moving from a region of higher potential to lower potential instead of the opposite?
 A: The reason, the excessive electrons end up on the anode is because chemical "forces" behind the oxidation of zinc exceed electrostatic forces trying to keep zinc atoms together. The opposite happens at the copper electrode.
The overall balance of "forces" and the resulting potential difference between the electrodes in the cell is dictated, roughly speaking, by the difference in the ability of copper and zinc atoms to keep their valence electrons, which translates in the difference of the copper and zinc standard electrode potentials: $+0.34V$ for copper and $-0.76V$ for zinc.
If we skipped all actual chemical reactions and just pitted a copper ion against a zinc atom, the copper ion would be able to wrestle two valence electrons from the zinc atom, even if there was an external electrostatic field favoring the zinc atom. The electrons in the copper atoms will end up at lower potential energy level than they were in the zinc atom, which makes this transaction energetically favorable.
This excessive chemical pull of the copper atom, or, more precisely, this difference in the potential energy levels, gives rise to the potential difference in a copper-zinc cell and makes electrons move from the anode to the cathode and not the other way around.
