Option 1: run a script like this every minute or so with cron or launchd:
mkdir -p $cd
status=$(osascript -e "tell app \"iChat\" to status")
[[ -f $cf && "$status" != $(cat $cf) ]] && say "$status"
echo "$status" > $cf
(The script activates iChat every time it's run.)
Option 2: save this as a stay open application in AppleScript Editor:
tell application "iChat"
set prev to status
if status is not prev then do shell script "say " & quoted form of status
(Also activates iChat every time it gets the status.)
Option 3: use an iChat event handler (thanks Kopischke)
This worked for me on Lion, but only when iChat was active. (Not when it wasn't and I changed the status from iChat's status bar item — which I guess was the actual problem the OP had.)