I should issue some disclaimers before anyone takes my thoughts too seriously.
I write very little dialog. I dislike dialog, I find much of it (especially on this site) stiff and awkward, and I'll do whatever I can to avoid it.
I write very little at all. I've only published a few stories here.
I do not attempt to address the basic problem of punctuation within dialog. That's an article all its own, and there are plenty of good websites that cover it. I recommend this page in particular:
» http://www.writing-world.com/fiction/dialogue.shtml
So what do I mean by awkward dialog? Here's a contrived example. Mary is telling Larry about her accident.
"So what happened?"
"I fell down the stairs outside my apartment. I want so badly to be an acrobat, and I didn't pay attention to where I was. I did a cartwheel. When my feet came down, I was at the stairs. I couldn't stop, and I tumbled down."
"Why didn't you call me to come help out? I would have come over right away and taken you to the hospital. I was at the grocery store."
"Thanks. I know you would have, but Tim was just three doors away down the hall."
"What about Amy? She lives just as close."
"I needed someone strong enough to lift me. Tim was able to pick me up and carry me to his Jeep. I was at the hospital in less than a half hour. Amy would have had to call an ambulance. I don't know how long that would have taken."
"I don't like Tim and I think he wants to take advantage of you. He likes you as more than a friend."
So how would I improve this dialog?
Indicate who's talking. The reader shouldn't have to keep track of the number of paragraphs to know who said what, and it gets worse if consecutive paragraphs are spoken by the same character.
Express the non-verbals. For all we know the two characters here are sitting at a table staring blankly across the room.
Streamline the text. We really don't need all that much detail - who cares that Larry was at the grocery? We don't need to know exactly how quickly Mary reached the hospital.
Express more feeling with the words. Two people who know each other will usually insert jokes, express emotions, generally converse with more vivacity than two strangers.
Larry sat at the hospital bed, holding Mary's hand and looking at her with concern. "What happened?"
Mary closed her eyes and sighed before turning to look at him. "I'm such a klutz. You know I've always wanted to be an acrobat, right?
"Well, I decided to practice in the hall outside my apartment, and didn't pay nearly enough attention to where I was." She sighed again. "When my feet came down at the end of the cartwheel, I realized I was at the top of the stairs, and I couldn't stop."
Larry winced, then grimaced. He asked, "Why didn't you call me for help? You know I'd have come over right away."
Mary smiled at him and paused for a few moments, expecting him to see the flaw in his reasoning. When he didn't say anything, she rolled her eyes. "I know you would have, you doofus, but Tim was right around the corner," she said patiently.
"What about Amy?" Larry asked, plaintively. "She's just as close."
"Tim's strong enough to carry me. By the time Amy would have been able to get an ambulance, Tim had gotten me to the hospital."
Larry looked uncomfortable at the thought of Tim holding Mary. "I don't trust his motives," he said.
Here's another technique I find useful.
Paraphrase some of the dialog.
This is particularly useful in a scene when two characters are meeting or greeting each other. Who really wants to read 7 paragraphs of dialog when 4 of those paragraphs are the two characters introducing themselves and later leaving the scene?
Sometimes, entire conversations can be paraphrased away. I recently read a story where the main character repeated his intentions to three different characters in one chapter, practically verbatim. Summarize or paraphrase or drop the conversation entirely!
When Larry called Janet that night, he made sure to fill her in on the events of the day, and expressed again his concern about Tim's recent actions. Janet made sympathetic noises at all the right points in the story, but didn't seem worried about Tim.
If anyone had to rescue Amy, why did it have to be Tim? he thought to himself for the umpteenth time as he hung up.
As you're reviewing your story, speak the dialog out loud. Try to picture the characters saying the words. Would they pause between thoughts? Would they really speak that formally? How often do real people say the name of the person they're speaking with?
Here's an example of dialog from Trick or Treat, by Jack Spratt1. It's not terrible, but I found it unnatural.
"Hello. I am Tyrese Raven, the chairperson of the Students Committee. I would like your permission to test the sound equipment before the Halloween street party."
A 14-year-old girl generally isn't going to speak that formally - and if the author's intent is to have her speak formally for reasons of her own, then other characters should react appropriately, perhaps telling her (or at least thinking) that she needs to loosen up, or speaking mock-formally in return.
"Hi! I'm Tyrese, Tyrese Raven, with the Students' Committee. Can we test the sound equipment before the party?"
Changes I made:
I loosened up the language (contractions work wonders)
I dropped unnecessary text (what other party would she be referring to?)
I added some unnecessary text (the repetition of her first name) to give her a speech pattern of her own
I added implied inflection to her speech by replacing statements with questions and exclamations.
Your mileage, of course, may vary - you might find the original text more natural, or might prefer an entirely different way of introducing the character.
Another important tip: enlist the help of an editor!
I was astonished to see the length of the list of active volunteer editors. Besides helping identify unnatural dialog, they can catch poor punctuation, misspelled words, and grammar errors... these can wrench the reader out of the fictional world you've created.
(Hint: When I see a story summary with typos, I don't even bother reading the story. Proofread those summaries!)