Relative+absolute positioning is your best bet:

#header {
  position: relative;
  min-height: 150px;

#header-content {
  position: absolute;
  bottom: 0;
  left: 0;

#header, #header * {
  background: rgba(40, 40, 100, 0.25);

<div id="header">
  <div id="header-content">Some content</div>

But you may run into issues with that. When I tried it I had problems with dropdown menus appearing below the content. It's just not pretty.

Honestly, for vertical centering issues and, well, any vertical alignment issues with the items aren't fixed height, it's easier just to use tables.

Example: Can you do this HTML layout without using tables?