Many CMS and web programming frameworks support the implementation of such user (and search engine) friendly links.
On the lowest level, you may use the URL Rewrite feature found on all servers.
If you use Apache server, you have to edit the .htaccess file; for IIS (Windows server) the web.config file.
Google for url rewrite apache or url rewrite IIS.
Update: As an example, see this solution (borrowed from from CodeIgniter). You can of course replace index.php, images etc. with whatever you want.
RewriteEngine on
RewriteCond $1 !^(index\.php|images|robots\.txt)
RewriteRule ^(.*)$ /index.php/$1 [L]
Update 2 - Explanation
As for a more in-depth explanation, I've found this excellent introduction/tutorial on the topic: URL Rewriting for Beginners
Hopefully this makes much more sense that the unexplained example above:)