The general implementation of such “pretty” permalinks in WordPress is realm of WP Rewrite. However it is pretty wide topic and low level code is a bit of abomination.
I would say these are three most common techniques for it, complexity ascending:
- Use WordPress native data structures (such as Custom Post Types and/or Taxonomies) and benefit from “magical” permalinks support provided for them.
- Add a limited extensions to existing permalinks, using endpoints. This works quite well for simpler use cases.
- Go all the way with rewrite and define completely custom rules. This is most powerful, as well as most messy.
Rewrite API documentation in Codex would be a start.