The two tenses are often interchangeable. 'How long have you smoked for ?' is virtually the same as 'How long have you been smoking ?'. Both ask about your history as a smoker.
The differences often turn around, as you say, the present result. What have you been doing this morning ? "This morning, I have studied the history of France (and I have finished)" is slightly different from, "this morning I have been studying the history of France (and I might continue to do so)".
The textbook example is "I have painted this room (and I have completed it)" and "I have been painting this room (and I have not yet completed it)".
- For Teachers