I'm a big fan of premium plugins – they typically have more features, better support, and are better maintained than free plugins. Having said that you can actually do quite a bit with all of the free plugins available on the WordPress.org plugin repository. This site for example uses only free plugins and plugins I've written myself (okay technically I'm using one premium plugin because I'm experimenting with it).
Premium Plugins over Custom Programming
At this point I'm very happy using premium plugins when they meet a client's needs. This is a very different place than I was when I first started programming. Not just in technical means but in my philosophy towards development in general. My first job out of university was at a web development shop where I was a LAMP programmer. We built entirely custom content management systems with straight up PHP & MySQL.
I learned a great deal about programming and I was able to build some really advanced custom web apps like a time tracking app where employee's clock in, and a custom e-commerce site. The only downside to these web apps was the time investment. I spent two weeks building the e-commerce site from scratch where as using WooCommerce, a couple extensions, & a theme I could build that same site in a day.
I can't even imagine how many wasted hours I spent fiddling with forms in straight PHP & HTML rather than using a form builder like Gravity Forms or Ninja Forms.
WordSesh
I'm talking about this very topic today at WordSesh. I'm speaking at 17:00 UTC time (11am CST) about this very topic. Here are my slides:
I'll also be speaking about WooCommerce at 20:00 UTC time with some very talented folks: Brent Shepherd, Coen Jacobs, Daniel Espinoza, and the brilliant man who organized the whole WordSesh – Scotty B.