Whenever you ask for a letter of recommendation, I recommend you offer to provide the letter writer with a draft (it's even better if you've written the draft before you ask so that you can send it to them later that day).
Just because you provide a draft doesn't mean that's all that person will say about you. If you truly impressed them, they will take the time to personalize the letter. As you'll realize when you sit down to write your letter, it's hard to start from scratch. In general, the person you're asking for a letter from will be busier than you are, therefore, you should make it as easy as possible for them. Making the letter writting process easier also puts them in a better mood when they sit down to personalize your draft. If your letter writer is pretty ambivalent about you, then definitely write your own letter and make yourself shine in a way they wouldn't put the effort into doing. Lastly, writing a draft of your own letter ensures that any anecdote that you are especially proud of will be shared.
I've written a handful of letters of recommendation. I wrote a peer letter for my best friend's Dartmouth application (He got in. He owes his entire life's success to me). I wrote one of my letters of recommendation for medical school (I had no idea what I was doing and what to say), and I wrote a draft for all of my letters of recommendation for residency.
The hardest part of writing your own letter is to not be shy. If you've bust your butt off for something, make that show; shine a light on yourself and your achievements. If you've kind of cruised through, you'll probably write a mediocre letter because you are what you routinely do.
Below is a template given to me by one of my mentors.
Italics are items that should be filled in as stated.
Date
Re: applicant's name (any applicant ID number, ie: AAMC, ERAS)
To Whom it May Concern:
Paragraph 1: Introduce yourself (the letter writer), state who you are writing a letter of recommendation for and for what, and what makes you qualified to give this recommendation
Paragraph 2: General background about the applicant highlighting things on their CV. It may seem redundant to repeat things here, but interviewers don't always look at an applicant's CV. Things that you want to discuss should be on your application in multiple areas.
Paragraph 3: The letter writer's personal experience with the applicant, anecdotes
Paragraph 4: Tie it together to talk about the applicant's strengths, personality, why they would be a good fit. At the end of the paragraph, rank the applicant - this is the most important paragraph (not recommend, recommend with reservation, recommend, strongly recommend, recommend without reservation, highest recommendation)
optional: Please do not hesitate to contact me for additional conversation about 'x'.
Letter Writer's Name
Letter Writer's title
Letter Writer's contact info