I've been working with PMs of various breeds at multiple companies for years now. Many years ago at Microsoft there was a class called "PM is more than provider of meals". Yes, at MS the PM was often worrying about team morale and making sure we were fed and clothed (lots of t-shirts), but that's not really why they existed. They were the voice of the customer (whoever that was, internal or external), worked with partner teams, vendors, and generally filled all the gaps that no-one else was filling. They did things like communicating up, down, and across, providing product vision, leadership (but no authority), problem solving, and prioritizing. Not in a vacuum, and they were by no means the ones doing all of any of that, but they were a backstop to make sure things got done.
At ATG we have, at least, Program Managers, Product Managers, Project Managers, and Technical Program managers. Different roles with different skills and expectations, but it's not always clear which one you have, let alone which one you want or need. In most cases you need parts of all of them, and the best PMs (regardless of title) combine all of the different skills, to varying degrees, and just help you get things done. Unfortunately, our PMs cover very wide areas and we almost never have one of each working directly with each team/group, so how can we move forward most efficiently?
Most importantly, we all need to be clear about who's responsible for what, and that's going to vary by team. In the end, all of the bases have to be covered regardless of the mix of titles involved in any particular effort. So whether it's the PM, EM, TLM, TL, or an IC, we need to make sure things are covered. And we need to make sure things aren't covered multiple times so there's no confusion about who's responsible for what. How are you and your team handling it? What best practices have you come up with?