Titlecase.py is a project mainly written in Python, it's free.
Stuart Colville's titlecase.py without ez_setup
Titlecase is a port of John Gruber's titlecase.pl http://daringfireball.net/2008/05/title_case
This filter changes all words to Title Caps, and attempts to be clever about uncapitalizing SMALL words like a/an/the in the input.
The list of "SMALL words" which are not capped comes from the New York Times Manual of Style, plus 'vs' and 'v'.
To use it is as simple as:
from titlecase import titlecase titlecase('a thing') 'A Thing'
See https://launchpad.net/titlecase.py