Plugins are ways to extend and add to the functionality that already exists in WordPress. The core of WordPress is designed to be lean and lightweight, to maximize flexibility and minimize code bloat. Plugins then offer custom functions and features so that each user can tailor their site to their specific needs.
WordPress Widgets add content and features to your Sidebars. Examples are the default widgets that come with WordPress; for post categories, tag clouds, navigation, search, etc. Plugins will often add their own widgets.
This is not as straight forward due to the concept being quite abstract. Think of a widget of extending the template dynamically by allowing a webmaster to deploy 3rd party plugins (as well as default plugins). Developers tend to use such functionality to display information that is not mission critical, non intrusive and easy to use / manipulate.