Let's take a blog, for instance. What you effectively do is pre-render all your blog posts into ready-to-be-served HTML. When you visit a Wordpress site, PHP takes over and custom builds the response for the request. EVERY request that isn't being cached effectively.
Now there are tradeoffs. You won't be able to have some user/visitor specific data like user profile. You have to get crafty with what else you take for granted that is exposed through server-side languages and database persistence. You have to push functionality out to the front-end if you wish to have a rich content site.
What are the benefits? Substantially less server load as this is just serving static assets (HTML, JS, CSS, images). Lessened security concerns ( absence of SQL injection, Cross-site scripting attack vector from untrusted user content is removed). Highly cacheable content. Less 'moving parts' to worry about which could break in production.
Your site can still be managed by PHP, Ruby, Python, etc and have a database backing it, but it is not accessible from the Internet by visitors. A static site solves a defined set of problems, but it is definitely not a hammer.
Here's a list of static website generators:
http://iwantmyname.com/blog/2011/02/list-static-website-gene...
My personal site is just a couple html files.