After reading about the effort put into making "vanity" addresses, I didn't think hand-crafting a viable address would be so easy.
These are really two different problems.
Problem #1, create a valid address that has a certain set of characters in it (i.e. to throw away money)
Problem #2, create a valid address that has a certain set of characters in it, that I know the private key to. (i.e. vanity addresses)
In problem #1, simply start with the characters that you are trying to create a valid address with. Get the right checksum at the end, and you're all set.
In problem #2, you have to create a valid key pair, and check to see if it has your desired string in it. A much more difficult problem!
Ah, a mistake on my part; for some reason I thought the vanity addresses didn't include private keys.