Dynamic sites can just a bit more to deal with, but they can certainly be as well ranked as any static site. There's a few issues that you'll specifically have to deal with.
Unique Titles / Headers - be sure to set it up so that every page has customized titles and H1 tags relevant to the content keywords. You should easily be able to build this into your database.
Search engines can read query strings just fine these days, but not too many people can. Be positive that you are sticking to one or two value pairs at most in the query string (i.e. yourdomain.com?x=1). Better yet, if you are using an Apache server, modify the .htaccess file to use a directory structure instead (i.e. yourdomain.com/x/1/). This is a little more difficult, but very do-able and there's loads of tutorials around the net that explain how to structure it. Here's a couple resources:
http://corz.org/serv/tricks/htaccess2.phphttp://www.askapache.com/htaccess/mod_rewrite-variables-cheatsheet.htmlBe very aware of duplicate content with a dynamic site - especially on product pages. Google is really been working on their duplicate content filters recently and have made some changes recently to muck some peoples SERP rankings up. If you have to have some duplicate content, then be sure you canonicalize it:
http://googlewebmastercentral.blogspot.com/2009/02/specify-your-canonical.html