I always do it in person if I am still on the rotation with the attending. If not, I send a letter asking to "meet with them to discuss a possible letter of recommendation." I have found that most of the docs appreciate the offer and wilingness of me to come sit and meet with them.
I always asked in person. The students who have asked me for letters have also done so in person. I think that's the best way to go about it, unless there's no way around it. A telephone call is the next-best way to go. I'd reserve e-mail for a follow-up "thank you" and any supporting documentation that you provide to the letter-writer (e.g., your CV, etc.)
I emailed a medicine professor I hadn't seen since last October and asked him if he felt that he could write me a strong letter of recommendation. Then I offered to meet with him to go over my CV, etc. Everything went fine.
i always make an appointment to discuss the rotation and obtain feedback. i always go in person. i always have a personal statement, cv, and release form in hand. then i talk about the rotation, give and receive feedback. then i ask for a letter. if i go early i say i understand it's contingent on my performance for the entire month, and if something changes then they are under no obligation. i always make sure they are willing to support my application. i always ask for a STRONG letter. hasn't failed me in 10 years.