Its a very interesting problem, and one i've previously tried to solve.
Working within the realm of Salesforce and Marketo and utilising Campaigns and Opportunities, you could create some sort of automation between your subscription tool and Salesforce to attribute the fee's charged to a customer to an Opportunity in Salesforce, and automate the creation of these opportunities every month. (assuming you bill monthly)
You would then have your original Marketing campaigns show up as influential (in salesforce reporting) and either creating FT or MT revenue (in Revenue Explorer) over any of the orginial opportinities that get created. If you also perform customer development/retention campaigns, assuming those are set up in both tools, those will have revenue attributed to them as well, as we assume that those campaigns increase the likelihood that the customer continues to use your service.
The above covers showing the revenue associated with each campaign, the next step is to add costs to the programs/camapigns and then the ROI is yours for the understanding.