Another way to think of the difference between Ladder and FB is: Ladder visualises the flow of logical states better, whereas FB visualises the flow of the data better.
A single rung of ladder is a very powerful display of a the conditions within a single logical statement, the user can spot at a glance exactly the true/false state and why. But the inherent weakness of ladder is that is does not impose on the programmer any defined way to organise the data flow. Much of the skill of writing good ladder is all about organising and commenting the data so that others can follow it.
By contrast FB explicitly displays all the data links from one block to another. This makes it very easy to follow a piece of information around a program, and for example, when using FB you find yourself using "cross reference" far less often. However the weakness of FB is that you HAVE to think about what each Block is doing. On the page an AND block and an OR block look just them same, so the user has to be able to mentally track what each one does.
From this falls the observation that ladder is a better language when state and sequences are the dominant information, and FB is the better langauage when data is the dominant information. Of course it is quite possible to write perfectly good systems with only ladder, or only in FB and this kind of choice will reflect the experience and background of the programmer.
Just to add another thought to this... ControlLogix allows the user to link multiple statements on the same rung. This means that the data output of one statement can directly flow onto the input conditions of the next. Once you get used to this it dawns on you that this is a kind of half-way house towards combining the strengths of ladder and FB together.