A dipole-dipole is an intermolecular force that occurs between two polar molecules. They occur when the slightly positive end of one polar molecule is attracted to the slightly negative end of another polar molecule. These forces are weaker bonds than Hydrogen bonds but stronger than London Dispersion forces. They have higher melting and boiling points than compounds with just London dispersion forces.
Source: Jennifer Roushar
Polar molecules contain polar bonds that contain form dipoles. To determine whether a bond is polar, you look at the electronegativity difference between the atoms. If the electronegativity difference is between 0.4 and 1.7, then it is considered to be a polar bond. This difference may vary depending on the source that you are using. Some say that an electronegativity difference as little as 0.2 is a polar bond. One side of the bond with have a partial negative charge, while the other side will have a partial positive charge. This is charge difference is called a "di"-pole, meaning that the bond has two poles; similar to a magnet.
The shape of the molecule plays a role in whether the molecule contains dipole-dipole forces. If the molecule is symmetrical, such as boron trifluoride below, the dipoles cancel each other out and make the entire molecule nonpolar even though the bonds between the atoms themselves are polar. Therefore boron trifluoride will not contain dipole-dipole forces. This can occur in linear, trigonal planar, and tetrahedral shaped molecules.
Boron trifluoride has polar bonds but since they are symmetrically distributed, these polar bonds cancel each other out making the entire molecule nonpolar.
Pure hydrochloric acid does contain dipole-dipole forces because of the large electronegativity differences between chlorine and hydrogen. This forms a polar bond and thus creates a dipole. Because of this uneven charge distribution, two HCl molecules are attracted to each other.
Source: Jennifer Roushar; Image from enotes.com; ; Image from textbook.s-anand.net