Delays can be caused by anything. Some of the most common are;
Reactionary delays (aircraft late in from previous trip)
Turnaround delays (late fuelling/loading/catering)
In Europe, most delays are caused by ATC, and areas like Greece and Spain are "black spots" - accounding for a dispoportionate number of delays for the flights they handle. Once an aircraft lands of course, an ATC delay becomes a reactionary delay, so ATC doesn't carry the can for the delay on the next flight - even though it's their fault.
You can't blame airlines for flying into a given airport at the same time, this is because passengers at hubs want short connection times. You also can't say - "fly to an airport 50 miles down the road" Airlines fly where the passengers deman to go, If you land 50 miles from where you want to be, you may be on-time but it will take you an extra hour to get to your final destination! Meaning you were better off flying to the hub and taking the delay.