Aquí hay una explicación del funcionamiento del algoritmo y un ejemplo de implementación como función de Firebird:
Implementing a Soundex Function
Para el castellano solo habría que buscar una agrupación de las consonantes mas adecuada, pero la verdad es que, una vez, lo probé con varias palabras españolas y parecía servir (aunque supongo que no al 100%)