My preferred way of writing presentations is now using a Trac wiki with the S5 plugin.
S5 is a slideshow format that turns HTML+CSS+JS into a slideshow you can run in your browser. You can see an example slideshow here.
Instead of writing the S5 HTML by hand, I use Trac s S5 plugin to convert wiki syntax (similar to mediawiki syntax) to an S5 presentation. So a wiki page like this:
[[S5(theme=yatil)]]
= My presentation =
November 18 2009
* Steven Kryskalla
* skryskalla@gmail.com
* http://lost-theory.org
== Intro ==
* Topic 1
* Topic 2
* etc.
== How to X ==
First, install and configure...
{{{
#!python
#this turns into syntax highlighted code
}}}
== Resources ==
* http://www.example.com/
Turns into a slideshow with 4 slides. The == Headings ==
start a new slide, and the body of each slide can be text, syntax highlighted code, bulleted lists, numbered lists, images, tables, etc.
The wiki has built in version control so you can diff, revert changes, etc.
It probably wouldn t be that difficult to re-use the wiki formatter and S5 code to create a command line program that turned a text file into a presentation. That would allow you to keep the slide in your own version control system (svn, hg, etc.).