One advantage of Python's keyword arguments is that it makes it easier to write functions with many arguments without having to worry about the order of the arguments.  Keyword arguments also make it easier to see at a glance which parameter is which in case one of the parameters you are passing is a ambiguous/non-descriptively-named variable or the result of an inline expression.

Thus, it's a common pattern in Python to do this as something like

def _render_report_configs(request, configs=None, domain=None, owner_id=None, couch_user=None, email=None):
   ...

allowing the caller to pass them as keyword arguments.  Alternatively, you could bundle, say, domain and owner_id into a 'context' dict and/or get couch_user from request.couch_user instead of passing it and/or change the report_email template to use couch_user.get_id so you don't have to pass both owner_id and couch_user.