Reverse words without changing capitals or punctuation
GolfScript, 58 54 48 characters
&quot; &quot;/{.{65- 223&amp;26&lt;}:A,\{.A{96&amp;\)31&amp;@+}*}%+}%&quot; &quot;*

This is a GolfScript solution which became rather long. Lots of the code is actually finding out if a character is in a-zA-Z. Maybe someone can find an even shorter way of testing it.
You can try the code online. Examples:
&gt; Hello, I am fish.
Olleh, I ma hsif.

&gt; This; Is Some Text!
Siht; Si Emos Txet!

&gt; Don't try this at home.
Tno'd yrt siht ta emoh.