I use widgets for parts that are used in most pages and do some general taska (menus, breadcrumbs, search and login). renderPatial is used for some common parts of 2 or 3 pages (content of tabs, some parts that will used as template for renderPartial in ajax requests). Anyway it’s only your decision.
Partial is just rendering a template, a widget is actually a class which may or may not actually render a template. It can also contain much logic within the widget class.
It’s 2 different things. renderPartial is method that render view without layouts, but widget is self-containing part of interface with own logic and view.