Although the general case is undecidable, many people still do solve problems that are equivilent well enough for day to day use.
In cohen's phd thesis on computer viruses, he showed how virus scanning is equivilent to the halting problem, yet we have an entire industry based around this challenge.
I also have seen microsoft's terminator project - http://research.microsoft.com/Terminator/
Which leads me to ask - is the halting problem overrated - do we need to worry about the general case?
Will types become turing complete over time - dependant types do seem like a good development?
Or, to look the other way, will we begin to use non turing complete languages to gain the benefits of static analysis ?