The keywords used to optimize your site need to be getting a decent amount of traffic. This might sound redundant and completely obvious, however I have heard of many an SEO consultant choosing keywords that are getting zero to little traffic because they are easier to rank for. This does not include the practice of going after "long-tail" keywords. Long tail keywords get less traffic than major 1-2 word phrase keywords but they do get enough traffic to warrant going after. In general a keyword should be getting at least 100 searches per month.
Keywords that are relevant and that are getting decent traffic should also be chosen for the absence of a huge amount of competition. This will shorten the amount of time it takes to ranked and will lessen the overall cost of the campaign. A good SEO consultant will take this into consideration