The 'cold' junction (actually it can be warmer than the measuring junction), is where the thermocouple material wires transition to the circuit material (usually copper). For most thermocouples (other than type T copper-Constantan) there are two junctions that will be physically close together, typically at a screw terminal strip.
If you want any kind of accuracy you must prevent thermal gradients in the region of that terminal strip (prevent air from blowing on it, for example), minimize heating from other parts of the circuit, minimize disturbances brought in through the thermal conductivity of the wires themselves, and use a sensor to measure accurately the temperature of the point where the wires transition to copper. Keeping the thermal mass large in the region of the terminal block helps. A 3°C error between your measured temperature and the temperature of those junctions means you will have (typically) extra ~3°C error in your measured temperature, so the cold junction compensation measurement accuracy is extremely important if high accuracy and/or temperatures close to ambient are being measured. If it's a high temperature you're measuring (say 400°C) and you don't care about 5°C you can be a lot more sloppy. For at least one thermocouple (B) the cold junction is almost not required because of the extreme non-linearity (it actually reverses below room temperature so it is not monotonic).
The traditional method controlled the temperature at the transitions with an ice bath, but that's clearly impractical for most modern applications.
Once you have the temperature you can calculate the resulting thermoelectric voltage from the cold-junctions, adjust the measured EMF by that factor, and calculate the temperature from the adjusted EMF. A straight linear correction can be used (so many uV/°C) if sloppy accuracy is acceptable, but in general both forward and reverse functions are slightly nonlinear, so it's a compromise.