Website creative design, SEO and programming can involve very different skills and personalities. If you need more than one type of service, make sure you look for companies that either specialize in a specific area of expertise or companies with expertise in managing multiple in-house or external resources with the specific expertise needed to complete each task.
When it comes to selecting an SEO company, start by making sure any proposals or project plans show in specific terms how its services would seek to achieve your business goals, not your company's ranking on any particular search engine. Next, pay more attention to the companies that can show you a defined process with a history of predictable results for their clients. Ask for a summary of the SEO tools and technologies used in conjunction with the services, and ask whether subcontractors or in-house employees are ultimately providing the services. You don't need to know every detail, but you should feel confident that the company you hire believes its business model is designed to improve your bottom line over its own.
Before making your final decision, compare the costs of each option in terms of the expected impact on your business goals. If you can't see a way to measure the return on investment based on the plan, don't hire the company. Paying an SEO company for an increased ranking isn't worth a penny unless you can measure the value of the increased ranking in terms of incremental website visitors or sales.