I’ve generally only ever had budget for internal stuff. I’ve tried to bring in leads from other teams to talk about the tech they work with (I mostly worry about backend, so, eg, have client tech leads come in). I find that kind of cross training really helpful for inter-team communication. A surprising number of “backend” engineers don’t really know much about their OS or the Unix environment (why this is... I don’t know), so having folks from Ops come in and give a quick tutorial on those sorts of things is also really helpful. I could do those things myself, but I think working with leads from other teams helps build rapport and familiarity, it also gives those folks a chance to emphasize what they think would be most helpful for them if we knew more about it.
At a previous job we had good PMs who were skilled as “agile coaches”. I hate to call them that, but I think it’s probably the closest thing that would be generally understood. They would help organize and host some excellent sessions on how to make our retrospectives and planning sessions go better.
I’ve also worked with sales engineers from key vendors to come in and do a hands on about new features, if I can schedule it. It’s usually low or no cost training. Making better use of tools you pay for can be huge.
Ps. Would love to hear more about others experiences with outside trainers coming in for hands-on sessions.