I quote JBM:
Finishing an activity programatically
is absolutely OK.
… but in nominal cases, that's not necessary and, moreover, could be the exact opposite of the android UI ergonomy. I suggest you to read carefully the dev guide:
http://developer.android.com/guide/practices/ui_guidelines/activity_task_design.html
Esp. the Navigating Away from an Activity with BACK and HOME keys section.
On the Exit button implementation, I once more agree with JBM on the fact that implementing an Exit option will unfortunately lead to user's disappointment about the overall android ergonomy.
My point is that the doc, even if not perfect, provides a large and sufficient set of information on UI design, good practices, coding rules and optimization tips. It's to be read.
−− update: the popular angry birds application does not implement an exit option but rather use the back button and prompt the user for exit. It seems a really good approach.