Generally in a report, you wouldn't use a filtered query, but would instead allow your report to manage that (or in your case, perhaps the Master/Child links between your subreport and it's parent).
I'm not sure of your exact report structure, but if you're trying to show all Speicalisms (shouldn't that be Specialities ;)) for a specific Firm, then if you base a Report on the table that holds the data, and relate that table back to the Parent report's Firm field (to filter the data for only the currently showing Firm) then it should work. Reports are very adept at filtering their own data, and trying to work around that can cause some issues.