Your home page is the most important page of your website. People will decide within 5 seconds whenever they want to stay. The goal of the page is to communicate broadly what you do and to create the right first impression.
But, most of all, it make users want to click something .
Do not try and say everything on the home page. This is the most common mistake I see. You have plenty of opportunity throughout the rest of the site to explain what you do so please do not feel you have to say it all on the front cover.
Look at the best book covers, they entice you to pick up the book and open it. This is quite the role of a home page.
Home page's are slightly more complex than a book cover in that repeat visitors do not needlessly just want to see a 'front cover' every visit. The BBC website for example must have lots of current news and affairs constantly changing on it's home page. Once a user is familiar with a website then the purpose of the home page changes. It becomes more about communicating new information on the site, eg special offers, new products, news etc.
Make the navigation simple . I've seen so many sites with far too many buttons. Try to rationalize all of your products or services into 3 or 4 broad categories. This really helps the user understand what you do and helps them decide where to go on the site.
Have dynamic content to bring the page to life with new content. eg. news or Twitter feeds, special offers, latest videos etc.
Contact Details – display them on the page in case people are just coming to your website to get in touch.
Brand Consistency – make sure the web design reflects your brand identity. So many sites bastardise a company logo to fit into a web design. Also things like typography, color pallettes and tone of voice need to be consistent with your offline marketing.
And finally, do not use templates ! Use an experienced graphic designer (not a 'web developer') to create a bespoke home page that's tailor specifically to your company.
There is a big difference in skill set between a designer and a developer. A designer's job is to create the look and feel and communicate the right messages. A developer's role is to translate this vision into a useable website which functions well across all platforms and devices.