i tried the latest version (0.47) from
http://jocr.sourceforge.net/download.html and it works much better. ubuntu 8.10 has 0.45 in the repos.
i don't know if it's recognition algo has improved or the way it uses the db, but as i train it, it prompts less and less for characters and gets less wrong from the outset.
so for reference, to train it i procure an image

, clean it up and from the working directory that the image is in i use the following command:
gocr -C a-zA-Z0-9 -m 162 -a 100 imagename.pnm
it will prompt for characters it doesn't recognize 100% (the -a 100 arg sets the certainty level to 100% - the default is 95).
it will the display these characters as ascii images in the console, usually with the adjoining characters as well - the character it doesn't recognize will be drawn with the "#" character. only enter the one character drawn with #. in the beginning i didn't pay attention and entered all characters and had to delete the database.
the database will be in the 'db' subdir of your working directory.
to use the databse for ocr use the command:
gocr -C a-zA-Z0-9 -m 2 -a 100 imagename.pnm
i know it's working because if i omit the "-m 2" arg (use database) it doesn't recognize all the characters.
you can use the -p flag to specify the location of the db - it needs a trailing slash to work:
gocr -C a-zA-Z0-9 -m 2 -a 100 -p "/path/to/db/" imagename.pnm
hopefully this might be clearer to some than the man pages.