When I get a new assembly and I want a raw annotation, I usually extract ORFs, feed them to blast2go, get the sequence description decided by blast2go and that's it.
What I used to far to extract ORFs is artemis, I like it because it would basically concatenate all contigs into one giant mega contig, and I could tell it not to create ORFs at contig boundaries. That way, the output from blast2go, I could convert it to genbank, and feed it back into artemis.
The problem is that artemis takes longer to perform on bigger genomes.
Any other method you use to annotate your ORFs?