A slightly-more ELI5 answer:
When we touch any two different metals together, they charge up, one becoming positive, the other negative. They form a self-charging capacitor, or something like a low-voltage battery. This effect was detected in the early days of physics, discovered during sensitive measurements of electrostatic charge. It behaved much like contact-charging of silk rubbed against rubber. But with metals, no friction was needed. Later on it became clear that two different metals always produce the same voltage between them. (Well, same at room temp. The voltage changes slightly with temperature.)
But this voltage can never be detected by normal voltmeters. We can build our circuits out of copper, aluminum, iron, etc., and for every copper-aluminum junction, there will always be an aluminum-copper junction somewhere else. The metals-charging effect might be very large, yet it sums to exactly zero around a closed circuit. The neg terminal of one "battery" always faces the neg terminal of another. It's not an energy source (not the perpetual motion machine that Alessandro Volta thought he'd discovered!)
What if we bump a slab of p-type silicon against a slab of n-type silicon? That's a self-charging capacitor, and it produces roughly 0.7V between the silicon slabs. One slab steals electrons from the other, but just until the difference in orbit-energies of the mobile carriers is cancelled out. Note that diodes needn't be formed at the contact point. Instead we could use high-doped ++p and --n "metallic" silicon which cannot form diodes, yet when touched together, the slabs still produce that spontaneous charging and that same potential-diff. We could even solder the p and n silicon together (first silver-plate the ends, so solder will wet them,) and still that same 0.7V potential appears.
Why do diodes turn on at 0.7V, rather than at zero volts? It's because the depletion layer of the diode always contains that spontaneous "differing-metals-contact" 0.7 volts inside. The voltage keeps the diode turned off. On a disconnected diode this is not a measurable voltage (you'll never detect it directly, not unless you start measuring the e-fields surrounding the diode's terminals.) Heh, if we could form diodes from iron and copper, then instead of 0.7V, those diodes would turn on at the natural iron-copper potential-difference that all iron-copper junctions exhibit.
When we apply an external voltage to forward-bias the diode junction, the diode turns on when the external voltage cancels out the constant built-in invisible voltage. In other words, diodes only turn on when we've reduced the "invisible" junction-voltage to near zero: shorted it out by applying an opposing potential-diff.
All of this connects to many other physics effects. If we make a closed ?metal? no, semiconductor ring, a half-ring of p-type connected to a half-ring of n-type, then heat one of the junctions, many mA or perhaps amps will flow, since the two "invisible" voltages are no longer the same, and the small difference produces a large current in the circuit. In other words, PN junctions' "thermocouple" voltages are just a tiny remainder of this magical "invisible voltage," the thermo-voltage only arising because of an imbalance. We only detect the imbalance, but not the original potential-difference which always appears between two materials. [EDIT: metal junction's built-in potential changes little, while much larger thermo-voltages appear in the metal legs of the junction, rather than in the junction itself. For all-metal thermocouples, the metal, not the junction, becomes the "dc generator." ]
We can create a "source of cold:" a semiconductor refrigerator. If we solder any p-type silicon against n-type, then force a reverse current through the junction, where holes flow away from electrons, then the p-to-n connection becomes cold, and the metal contacts elsewhere become equally warm. Note that no diode was formed, since two separate silicon blocks were connected by solder. Swap the polarity and instead the pn-soldered junction heats up, while the metal contacts become equally cool.
Also, this means that solar-cells don't work as most people imagine. Inside the dark solar cell, the pn junction has a natural 0.7V potential difference. Elsewhere in the circuit we find opposite differences (probably found mostly at the metal contacts to the semiconductor.) The other connections all add up to the same 0.7V, which cancels the 0.7V of the pn junction. So, when the light hits the junction, carriers flood across it, and the junction-potential ...gets shorted out! Then, all the other potential-differences from other parts of the circuit will provide the e-fields which then force the charges to flow around the circuit. An illuminated pn junction in a solar cell doesn't provide the drive voltage. Weird! Instead, the metal contacts of the wires provide the drive-voltage, and the illuminated pn junction provides a missing voltage which normally would halt any current. Missing junction-potentials are an oddity which isn't found in any normal circuit. When a voltmeter (made of junctions of copper, solder, silicon, etc.) is connected to an illuminated solar cell, the missing junction-potential of the pn junction lets us measure the total potential of all the other conductor junctions present. (Or, instead we could take the micro-view, and say that the absorbed photons are elevating the energy-level of mobile charges in the junction, allowing them to cross it, regardless of the strong e-field of the natural 0.7V trying to repel them back again.) The flood of high-energy mobile carriers have shorted out the junction, discharging the self-charged capacitor. But this also means that the V-out of a solar cell will NOT be related to the photon energy (won't give higher outupt voltage for UV, or for x-rays.) Instead, the maximum V-out of the solar-cell is just the (now missing) potential-barrier of the pn junction.
But why do two different metals charge up when touched together?
It's because even two lone metal atoms also charge up when touched together. The energy-levels of different metal atom's orbitals are not the same. If touched together, one atom tends to steal electrons from the other ...but just enough to cancel the difference in orbital levels. Rather than single atoms, if instead we used two long chains of metal atoms, one of copper and one of iron, then when their ends touched, one chain would steal electrons from the other, until the magic invisible voltage-value appeared between the chains. It's a self-charging 2-plate capacitor. Works for metals, works for semiconductors. Search term: work-function of metals, and work-function difference of metal junctions (and, Volta or Galvani potentials in electrochemistry.)
[Beware, this is a first-approximation gradeschool ELI5 answer. As mentioned elswhere here, diode's turn-on potentials are only proportional to the work-function difference, not equal to it. Disconnected diodes don't actually have zero junction current, instead they have carrier-mobility effects, equal and opposite carrier diffusion currents, etc.]