We hear all the time about how people are voting with their wallets. Divestment is the exact same concept. Money is one of the loudest, most influential items in modern society. The government and corporations really listen when their money flow is affected. Divestment also has a history of working, for example when it came to abolishing apartheid in South Africa.
Few other actions show commitment toward a cause like how a person or group chooses to spend, or not spend, money. It has a palpable effect on the entity that it targets, and it allows the people doing the divestment to raise awareness while taking real action at the same time.
Divestment can be a very effective means of protest against something especially an organization. The only issue is that the divestment has to be significant enough to impact said organization. If they can move on without any serious consequences from this divestment then it is not going to help. I think in most cases divestment sends a very clear and urgent message about what actions are acceptable.
The saying goes, nothing hurts someone more than hitting their pocket. So if the goal is to make a message heard and make an organization feel the pain divestment is the way to go. Especially regarding the disapproval of the behavior, ideology and/or culture of a company, the best way to make it known that it is disapproved of is through money. The purpose of a for profit organization or company is to profit, and if they can not do that due to protest, their mission can not be accomplished. So divestment is a great means of protest.