The primary difference between SEO and SEM is that one costs money and the other only costs time. Search engine marketing is paid search, whether through Google Adwords or the other search engines, where advertisers pay per click to display their ads on specific searches. The advantage, of course, is targeted traffic that can fit any advertiser's budget. The disadvantage is that, although SEM brings traffic, it does nothing to improve the advertiser's website.
In contrast, SEO is potentially free for website developers and administrators who are willing to put in the time. SEO simply refers to improvements to a website that make it easier for search engines to find and rank the content therein. Basic SEO includes having accurate metadata, a proper site map, and so on. SEO doesn’t guarantee that a site will be the top result for a search – no one in SEO or SEM can guarantee that – but it will ensure that a site ranks higher than if no steps to optimize were taken. (Learn more about SEO in 3 SEO Tactics That Google Loves.)
SEO and SEM also differ in terms of the time frames in which they are implemented. An SEM campaign can be rolled out quickly, and it usually runs for a short period of time. SEM also has an immediate payoff. SEO is a long-term investment that will help a site build rank over time – and hopefully increase the organic (free) traffic coming to it through search engines.