SEO stands for "search engine optimization". You may ask, so what, what does that do for my website? Well, when you are searching on the web via google, yahoo, bing, etc, you are looking for specific words (keywords or phrases). Keywords and phrases are what make your site more visible on the internet. The key is to have the keywords or phrases in your content, so when the search engine crawlers, crawl your site, the content is agregrated in a "natural" or "organic" (unpaid) fashion. SEO is done by putting the keywords and phrases in the meta keywords area of your content.
SEO is an "internal marketing" strategy for your site, it is creating your content for your target audience. Step back and think about what your target audience will be looking for, keywords and phrases. To have the best results, you should create the content around those specific keywords or phrases. The content you create will give the search engines the information it needs to push your site toward the top of the search engine results. The more your site is visited, the more exposure you receive.
SEM stands for "search engine marketing". SEM on the other hand, is a marketing tool, usually a paid advertisement (pay per click - PPC) to get a higher ranking on the search engines. It may use part of your SEO; however, it is usually paid advertisements.