Very fine open source solutions are GRASS GIS (advanced algorithms, suitable also for very large data sets) and SAGA GIS (easy to use but only All in RAM Calculations). Some test suggest that the GRASS algorithms are more robust when using the well-known coarse DEMs like SRTM or ASTER.