This is an excellent article of explaining the difference between what should be coded into themes versus what should be coded into plugins. Even if you’re not a coder, but you use WordPress, there’s some good information here to help you sort through and identify good themes and plugins.
If you’ve ever been bitten in the past by some of the issues that it identifies (I have) this information should help you prevent that from happening in the future.