There are two issues with vias.
The first issue is the return current path. A high speed signal has an equal and opposite return current flowing on the nearest power or ground plane. If your signal jumps from one plane to another, the return current needs to make the jump, too. Since there is no via for the return current, it has to go to the nearest decoupling capacitor, greatly increasing the loop area and inductance. If the signal is jumping from one ground referenced plane to another you can just add in a via between the ground planes, but if it is between a ground and power plane, you may need to add a decoupling cap near the via. Differential pairs also mostly solve this problem as the two conductors carry each others return current and don't need so much help from the ground plane.
The second is the impedance mismatch. If you have controlled impedance transmission lines, a via is a bump in the impedance and will reflect some signal even if you have a via or cap for the return current. This is only infrequently a problem in digital design: see the thread about 90 degree turns to see how bad you have to get for a small impedance bump to be a problem. You need to be at very high speed, have long traces, or be very sensitive to jitter to worry about this. High speed clocks and serial protocols like PCIe are typical examples. Usually there are only a few traces that need such careful treatment so as long as you route them first you have plenty of room.