How to Show Different Widgets on Individual Pages or Posts in WordPress
Update: In addition to the method below, Jetpack now offers the same functionality. If you have Jetpack installed, you can enable the "Widget Visibility" feature in the Jetpack settings.
Dynamic Widgets is an available plugin that can be installed directly from your WP Dashboard (Plugins → Add New → Search: Dynamic Widgets). You can also manually download and install it from the WordPress plugin repository.
What Does it Do?
For example, if you had a page called "Products" and another named "Services", you may want to show different suplimentary content (Widgets) in your sidebars.
In your Widget Manager you have various theme locations where Widgets can be displayed.
By default, Widgets added to each location will be displayed on all pages. The Dynamic Widgets plugin adds a new setting to each Widget allowing you to specify which individual pages it should display.
Before you change any of a Widgets' settings, you'll see a "Static" link in the Widget settings. Clicking this link will reveal a settings panel (screenshot) that lets you change where the Widget is displayed. Once you have changed the settings, the link will read "Dynamic" which indicates it is not displayed on all pages.
You can also access the Dynamic Widget settings from Appearance → Dynamic Widgets.