When you need to dynamically display a block within a region, nothing can really beat the Context module. It allows you to define a set of conditions, that when met, executes a set of reactions. For example, you could create a context rule which adds a block to the sidebar second region (reaction) when a user is viewing an Article content type (condition).
A lot of what Context does can also be achieved using Panels. But if you're new to Drupal, and never used Panels than Context will be easier to use.
If you're new to Context then I would highly recommend you watch the two introductory videos below:
- Drupal 7 Context module - Daily Dose of Drupal episode 72 by Shane Thomas
- Drupal Tutorials #63 - Intro to Context - Adding Blocks With Context by LevelUpTuts
Recently I've discovered a powerful module called Context entity field. It allows you to define a condition that checks the value of a field on an entity.