What you are talking about is not really the domain of database searches. You could implement this sort of logic with lots of like queries (or some such approach) but that just sounds like hard work. Instead, if you want free text searching, you might consider using Lucene which includes fuzzy searching.
The Metaphone algorithm Bill mentions is very helpful. If the words (phrases, names, ...) are not English, have a look at DoubleMetaphone instead, which is also implemented by the Commons Codec library.