Unit tests don't catch all defects. But they are cheaper to set up and (re)run compared that other kinds of tests. The unit tests are justified by combination of moderate value and low-to-moderate cost.
Here's a table showing defect detection rates for different kinds of testing.
source: p.470 in Code Complete 2 by McConnell