I tend to use analogies. Take whatever the topic is, and think of something completely non-technical that they would understand, and explain it to them that way.
Best example I can think of offhand is if I need to explain object orientation, I'll explain it using a deck of cards. Or, when I was trying to explain the idea of wireless internet to my great aunt (who's never used a computer), I used cordless phones to explain it.
I've yet to come across any topic I can't dumb-down this way.
Update
I see this continues to get upvoted, so here's some of how I'd explain OOP with a deck of cards:
- A card is essentially a copy of the same object, a piece of stiff paper.
- Each card has a set of properties (value [A-K], suit, face up/down), which may or may not be unique.
- A card can be used in many different ways, without altering anything about the card (held in a hand, put in a deck, played on the field, etc.)
- If you want to get into interfaces: A card must conform to certain standards, such as size and shape.
- If you do something to one card, that doesn't affect any other card.
- A deck is a "container" object, which holds <= 52 card instances.
- The deck can have various operations done on it, such as shuffle, show the top card, draw 5, etc.
- The deck doesn't need to know or care about a card's value/suit, only that it is a card.
- A hand is another object, with a certain number of cards, and its own set of operations (play, add, remove, sort)