Simplifying a logic function using Boolean algebra
I'm not sure how to simplify this equation from the point you've gotten to without backtracking (e.g., recognizing that AB implies ABC' + ABC). The way I would do it is, starting from the beginning:

D = ABC + AB’C + A’B’C + ABC’ + A’BC’ + AB’C’

If we rearrange this as follows:

D = ABC + ABC’ + AB’C + AB’C’ + A’B’C + A’BC’

Then you may notice that we have:

D = A(BC + BC' + B'C + B'C') + A’B’C + A’BC’

Simplifying for C, we get:

D = A(B + B') + A’B’C + A’BC’

Which of course is just: 

D = A + A'B'C + A'BC'

Since we know that D is always true when A is true, this implies:

D = A + A'B'C + A'BC' + AB'C + ABC'

Which can be rearranged as:

D = A + (A' + A)B'C + (A' + A)BC'

Giving us the final result:

D = A + B'C + BC'

I'm sure there's a way to do this with De Morgan's law, but it's been a while since I've used any Boolean algebra and I couldn't be bothered to look it up.

Alternatively, you can draw out a truth table

D | A  B  C
------------
0 | 0  0  0
1 | 0  0  1
1 | 0  1  0
0 | 0  1  1
1 | 1  0  0
1 | 1  0  1
1 | 1  1  0
1 | 1  1  1


and recognize that D will always be true if A is true (A), and that if A is not true then D will be true when B'C or BC' (B'C + BC'), thus giving us D = A + B'C + BC'

Although the more "correct" way to do this via truth tables would be to use a Karnaugh map