I guess it depends on what you're selling, how long and complex the sales cycles are, ease of reaching/access to decision makers in target market, geographic location, etc... Some products/technologies lend themselves to a channel/partner model, especially when the partner can add value around your offering. When it's more difficult for partners to benefit and add value, a direct to end customer model may be necessary. Each has it's pros and cons. Partner/channels are great but they take long to develop. Direct to customer requires a sales team (inside and/our outbound). As far as lead gen agencies, you have options: here are firms that can do prospecting and appointment setting (i.e. cold calling); marketing agencies that will manage your lead gen programs (e.g. email marketing, paid search, SEO, content...).