There are a few ways to do it, it’s definitely one of the overlooked things of design. Vertical alignment is shaky at best.
The best results I’ve turned are from using a setup similar to this:
At this point you could set vertical alignment as all height is set in the parent elements. Gets rather wonky if you attempt to have a responsive design site, so I suggest using progressive enhancement with block and inline-block level elements first then transitioning to the table method with media queries.