Put each subreport in its own section, and do the following:
1. Within each subreport, go to the Section Expert and set the Suppress formula (DO NOT check the Suppress checkbox!) for each section that is not already suppressed. You want it to suppress if some key field that always has data when the subreport has data is null. The formula will look something like this:
IsNull({MyTable.MyKeyField})
2. In the main report, go to the Section Expert and turn on "Suppress Blank Section" for each section that contains a subreport.
-Dell