there are limitations, subreports don't have page headers or footer, and generally you will need to link a subreport to the main report for filtering.
If possible, subreports are not recommended as they cause the report to hit the database many more times.
Say the subreport is displayed 100 times, the database will have 101 calls to it (1 for the main report) so this can cause a report to run slower, and to increase network traffic.
I prefer to get the data via a stored proc with wide rows so that all the information is contained in the tables and then the subreport is formatted basically as a section of the report, resulting in only 1 hit to the database.
HTH