Не хочу критиковать (возможно Вы сами дошли к этому решению) но способ почти аналогичен прижатию footera к низу страницы, только в роли контейнера выступает body!
Все что необходимо сделать прописать (вместо min-height:100%) min-height:50%!
Но есть также много прекрасных решений с использованием только двух контейнеров!
То же что и у товарища выше, вы опять же центрируете картинку у которой жестко задана высота и ширина, это совсем не то. Попробуйте у вашего #logo просто увеличить высоту, или грузить картинку неизвестных размеров. А мой способ универсален.
Вертикальное выравнивание блоков в CSS