@Ian G's answer is correct - but I think his can be improved by removing the launch activity from the backstack. This is what @gardarh is trying to say.
I have a full answer at this related question that basically shows both sides of the problem, activity code & manifest code:
The activity code is basically the same as @Ian's, so I won't repost that. But I will include my addition to his answer.
Manifest Declaration (note the noHistory="true"
parameter):
<activity
android:name=".activity.EntryActivity"
android:launchMode="singleInstance"
android:noHistory="true" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>