I'm a big fan of WooThemes, though have had very mixed experiences with themes from ThemeForest.
I'd also like to throw in a mention for the official (free) WordPress theme directory. Unlike some premium theme sites, each submission is extensively and rigorously reviewed by the Theme Review Team to ensure that the code meets quality and security standards. Since this process has been in place, the themes included in the official theme directory rival (and many times exceed) the quality of some premium themes.
I personally prefer to create themes from scratch (or almost from scratch - I have a very basic 'bare bones' theme of my own that I use as a starting point). The main reasons why I choose this route are:
Premium/free themes that are created specifically for public release need to cover all possible bases in terms of potential usage. Because they try to be all things to everybody and they often compete for sales on the basis of the many bells and whistles they have, their code can be quite bloated and most of the features/options may not even be needed for a particular site. Creating a custom theme allows me to add in just what the client needs and to streamline my code so that the site loads faster.
When people think "custom theme created from scratch", they often think "way too expensive", but it can sometimes ironically work out cheaper to build a custom theme from scratch than customising a premium theme. Because I know my own code inside out and backwards, it takes me far less time to create a custom layout or add new features than it does to learn someone else's coding style and to find where the relevant code is in the myriad files in order to customise it, plus it can cut down on troubleshooting time - I know exactly where to find an issue in my own code, whereas digging through someone else's code (especially if they have a non-intuitive way of organising where they add things) can be a bit of a nightmare.
I've been a member of the WordPress Theme Review Team for just over a year now, so I know my own code meets all the quality standards and incorporates the WordPress functionality correctly. I'm sometimes horrified by how various premium themes don't adhere to the guidelines, which means that they're more likely to break by clashing with a plugin or not being compatible with a WordPress update.
All of that said, using a premium/free theme works really well in certain instances: For example, if you don't have the budget to invest in a custom theme and are happy to use an already made theme out-of-the-box or with minimal tweaks, or if your business is still fairly new and you're still working out branding/personality and your site's purpose/functionality, you may want to "try on" different looks for your website before deciding on one, then I'd recommend using a free or premium theme.
wpulti.net/best-free-wordpress-themes/ (link is now defunct, check below for alternatives) it has best of the best free WordPress themes. Apart from using other developed themes better is to develop your own themes