Display a block only if another specified block isn't visible?
I was able to do this with panels, view blocks and a custom PHP visibility condition.  I think Panels is trivia.  You could do this with Drupal's built-in block administration.

I had a news block that would show up on the city page.  It would display all the news of the city.  If there was no news for that city, it would display [another] news block for that state.  If there was no news for that state, it would display [another] news block for the country.

Each of these block was a view.   In the PHP visibilty I would check for views results using the views_get_view_result($name, $dispay_id = NULL [, $args])

So the county block would check if the state and city block view returned any results,  if FALSE (no results) then it would get displayed.  State would check if city block view return any results, if FALSE (no results) then it would get display.

If you blocks are not views, then I don't know how to solve the problem easily (unless the last block is the only one that is not).