Content is the king. Search engines love fresh and quality content, since that's what the users want - more new things to read every day and every hour. When your site changes often - search engine crawlers come back more often as well. Of course by generating new content you raise the chance that more of your pages will be found.
Once you have the content generated, here is what you can do to have your site found more often by new visitors:
Use Google Sitemaps to see how Google sees your site, when it was last updated, whether you have any problems on your site, etc. You also want to provide a sitemap for your visitors.

Get involved in communities relevant to the content of your site. Visit their forums and mailing lists, and help other people by answering their questions, posting links to your site if they contain information relevant to your replies. Usually you are allowed to have a signature, where you can link to your site. However be aware that more and more sites implement a new link attribute rel="nofollow", which tells Google (MSN, Yahoo and other sites) to not count those links to your site's ranking credit. This is to avoid comment spam. You can find the details here: Official Google Blog: Preventing comment spam.
The head section of the document should include meta entries for keywords and description. Though it's been said that the keywords meta entry has little or no weight with Google, but is still useful with other search engines. Also make sure that the title of the document includes the most important keywords and phrases, as Google gives a heavy weight to those. The keywords need to be included in the H1 and H2 header entries, and also once in bold, once in italic and if possible in the URL.
Spell check your content. Google doesn't like when misspelled words are used, as it tries to auto-correct search words. Some sites use misspelled words to get more traffic to their site. e.g., "hign paying keywords" instead of "high paying keywords" It's been said that sites containing valid XHTML are favored by the search engines. But it should at least use valid HTML.
One other thing to make sure is that your site is readable by non-graphical browsers, such as Links and Lynx. Blind users use those to browse the Internet and search engines favor sites that are useful to more people. In fact search engines see your site as text, so things like javascript, DHTML and Flash may make it hard for the search engine to crawl your site.
Publish articles on other sites relevant to your expertise. Make sure that those articles link back to your site. I'm somewhat weary about submitting my articles to other sites, since then I end up with a duplication problem and a chance that a search engine would penalise duplicated content sites. Hopefully it somehow knows where the content has appeared in first place. But I don't want to take chances. So may be submitting unique articles which don't appear on my site is a much safer strategy. Sometimes your site competes with many other sites for the same keywords. Rather than optimising all of your site for the same keywords, try to find less competitive keywords and optimise some of your pages for those keywords. There are both commercial and free programs to help you do that. Learn from your competitors. Go to Google and search for the competing keywords, go to the first few sites with high page rank and analyse those sites, see what they have done differently than your site. Granted the site might be just very popular and linked from many other sites, but more often than not reading through the source code of the site can tip you off how to do better. You can find out which sites link to that site by searching Google for link:yoursite.com and you may want to try to get your site listed on those sites. Since it's not enough to have a high ranking for your front page (Google gives different page ranks to different pages), once your site is established you should try to get other sites to link to other sections of your site as well. For example if you have a big site and you can identify segments which are different from each, try to raise a page rank for the sub-directories corresponding to those sections.
