Bugzilla has the notion of dependent bugs, which isn't exactly the sub-task paradigm you are looking for, but can be viewed as close. Unfortunately, the interface for this is quite clunky, as is the rest of the Bugzilla interface, but it does get the job done.
On the positive side, the relationships among bugs can be presented as a graph as well as a fairly easy-to-traverse tree structure to allow for exploring related issues. Additionally, as sub-issues are completed or change, those changes get percolated up the dependency tree so that those responsible for the higher-level tasks are easily notified that things they may have been waiting on are completed.