Late, but for future seekers . . .
The error message is somewhat misleading. The parameters that you pass in to the function need to be "valid" or you will get this frustrating error message.
Here is a quote from TechNet for SQL Server 2008 article Using Change Data. I recommend that you read this article.
We recommend validating the LSN boundaries that are to be used in a TVF query before their use. Null endpoints or endpoints that lie
outside the validity interval for a capture instance will force an
error to be returned by a change data capture TVF.
For example, the following error is returned for a query for all
changes when a parameter that is used to define the query interval is
not valid, or is out of range, or the row filter option is invalid.
Msg 313, Level 16, State 3, Line 1
An insufficient number of arguments were supplied for the procedure or
function cdc.fn_cdc_get_all_changes_ ...
The corresponding error returned for a net changes query is the
following:
Msg 313, Level 16, State 3, Line 1
An insufficient number of arguments were supplied for the procedure or
function cdc.fn_cdc_get_net_changes_ ...
When I first began using these functions in SQL Server 2012, I was passing in wild parameters that were far outside the range of dates that had been captured by CDC. When I cleaned them up--that is, started using date ranges that were valid--good results followed.