Guilds, as a general concept, are terrific for Massively Multiplayer games. And nearly all regular players in WoW are in some sort of guild.
The problem, in my view, with guilds is that they don't have enough tools to organize events, manage resources, and etc.
As a guild leader, I really don't have much real power. I can kick people out, promote people, and so forth. But it's not like I have in-game power to resolve disputes over loot or try to provide "stuff" for new members, but there's nothing built in.
This leads to one of my frustrations, ones shared by my officers and that is the problem with people abandoning the guild to form new guilds. It's incredibly frustrating to equip some new guy only to have him leave a week or two later to create his own guild - often dragging away a few other members. Our guild's officers have run into this regularly. They'll spend time helping leveling up members, providing them good equipment and then they'll turn around and leave.
What I'd like to see would be:
1) A taxation system. Once someone joins the guild, 1% of the money they earn goes to the guild master and 2% is split amongst the officers equally. This allows the officers and guild master to distribute gold and purchase equipment for new members without having to dig into ones own pocket completely to help those users.
2) A exit guild cost. There should be a cost to leave a guild that is based on what level you are and your rank within the guild. If you're a level 60 officer in a guild then there should be some sort of stiff price to pay to do so. It might give some people pause for thought before leaving and taking 30 buddies with them to start some other guild.
3) Punishment system. There should be some way for guild masters and guild officres to punish users who have caued harm. Nothing particularly annoying and I don't even know what the punishments should be per se. But there should be some way for the guild master and officers to enforce the guild's rules/charters/covenanet/what have you. Right now, other than kicking them out, there's not much you can do.