In general, flights get cancelled when arriving flights are delayed or themselves cancelled. Your flight needs three critical things to depart on time, or at all:
- an airplane,
- flight + cabin crew, and
- weather that meets requirements
Aircraft may not arrive due to weather diversions (couldn't land with fuel on hand, etc). If there's no airplane, your flight obviously can't depart. Same goes for bad weather at your departure airport - if it's too bad, you can't go. If the weather at your destination is bad, the flight may also be delayed because the airport can't handle as many aircraft as normal. That's fairly straightforward. Where it gets most complicated is the crew.
Crew have what are referred to as "duty and rest requirements" (at least in the US; other jurisdictions have similar rules, possibly with a different name). A flight crew is "on duty" when they're first scheduled to fly, whether the flight happens or not, and the number of "duty hours" they can have on a given day are limited. The FAA last revised these rules in 2011, as far as I know, but I'm not an airline pilot. With the 2011 rules, "Flight Duty Period limits under the new rules range from nine to 14 hours". These rules exist to prevent fatigue, a major cause of aviation accidents.
What this means is that if weather delays cause crews to overfly their limits, they may be unable to operate the outbound flight. With your example of Frankfurt, there is weather causing delays to arriving flights.
For example...
If a hypothetical crew with a 10 hour duty limit was scheduled to fly, say, three LHR-FRA round trips (call it 3 hours of flight duty time each round trip; this may not be a valid example), but were delayed on their third FRA arrival by 2 hours, they would exceed their duty limits by 1 hour on the return flight (1.5 * 2 + 1.5 * 2 + 1.5 + 2 = 9.5 + 1.5 = 11 > 10
). As a result, they would not legally be able to depart.
Normally, airlines plan for this with "reserve" crews that are on call to fill in for missing, sick, overflown, or otherwise unavailable crews so that flights are not seriously delayed. When a huge storm hits, this falls apart as there are not enough reserve crews to operate all the flights, and the situation snowballs out of control.
Our hypothetical crew would be replaced by reserve pilots (and cabin crew) if they were available, and the flight might be delayed by more than the 2-hour flight delay they experienced. If not, the flight would be canceled.