* Organize meetups, hackathons, etc.
* Deliver presentations and/or get not-enthusiastic developers to do so.
* Initiate or sustain joint efforts with people on other projects, so they don't stagnate every time developers get distracted by other commitments.
* Get all that stuff from social media into the correct channels.
Most developers are not good at those things, and do not enjoy them. If your project is lucky enough to have some people who will do those things on their own time (or on company time without getting fired because they're not meeting code deadlines) then good for you. Many don't.
Sure, there's always tension between community and corporate needs. Again, who would you rather have managing that tension? Some introverted developer who only sees the world through the lens of the code as its already written, or somebody with better perspective and people skills?
Not every project needs a community manager. However, those that do will get one - either dedicated, or stolen from bits and pieces of other project members' time. Personally, I think it's a good thing when the project's technical leaders can shove all that other stuff onto somebody else.