To build on what Mike said - a static site is a collection of HTML files. A dynamic site uses a programming language like PHP or ASP and (usually) a database like MySQL or MSSQL.
Static is perfectly appropriate for small sites of a few pages, but once you get to more than that, it's best to go dynamic. I still build static sites; however, Apache/PHP/MySQL is next on my agenda. I can generally hack my way through a simple PHP script and get it working, but that's about it.
