How can I tell if a molecule is polar or not?
Every sufficiently asymmetric molecule will be polar, but some more than others

The polarity of molecules is related to the polarity of bonds within the molecule, but just having polar bonds is not enough to create a polar molecule.
 Consider, for example, CCl4 and CHCl3. Carbon tetrachloride has 4 fairly polar bonds but they form a regular tetrahedron and the polarity of the individual bonds cancel each other out to leave a molecule which has no net dipole moment and is non-polar. But the chloroform molecule (which swaps a hydrogen for a chlorine) is fairly polar (~1.1 Debye–the unit used to measure dipole moments–usually abbreviated to D) because the symmetry is lower and the three C-Cl bonds now all point away from the C-H bond and their dipoles don't cancel out.

Similarly carbon dioxide is a linear molecule so the dipoles of the (fairly polar) C=O bonds point in exactly the opposite direction and so cancel out. Water, however is bent so the dipoles of the polar O-H bonds  do not cancel out leaving a polar molecule with a significant dipole moment (~1.8 D).

Saturated hydrocarbons are usually thought to be non-polar for most meaningful purposes. But those that lack symmetry still have measurable (but tiny) dipole moments. Propane $\ce {CH3CH2CH3} $ and isobutane $\ce {CH3CH(CH3)CH3} $, for example, both have small but measurable dipole moments (0.081 D and 0.132 D) so are, strictly, polar. In practice, though, these molecules have such low polarity that the effects of their net dipole are dominated by other non-polarity related intermolecular forces and can be though of as non-polar.

But the critical message is that the most fundamental feature that determines polarity is symmetry or the lack of it. 

Also note that we are talking about discrete molecules here. One of your initial examples, $\ce {SiO2}$, is a network solid not a discrete molecule and the ideas won't apply.