Hoje é o dia. Você pode usar Java 5.0? Faça o seguinte:
import java.util.*;
import java.text.*;
import java.math.*;
// Requer Java 5.0 ou superior.
class TesteDecimalFormatComBigDecimal {
public static void main(String[] args) throws ParseException {
DecimalFormat df = new DecimalFormat ("#,###.##", new DecimalFormatSymbols (new Locale ("pt", "BR"))); // esta é metade da mágica...
df.setParseBigDecimal (true); // esta é a outra metade da mágica.
BigDecimal valor = (BigDecimal) df.parse ("1.234.567,89");
System.out.println (valor); // imprime "1234567.89"
System.out.println (df.format (valor)); // imprime "1.234.567,89"
}
}