Charge controller is used to charge batteries from Solar Panels. Solar panels normal give 15-17 volt, charge controller converts that to 12-14 volt and charges battery. Battery often need a higher voltage than it already have to charge the battery. Charge controller prevents batteries to be over charged. And stops to charge when battery is fully charged. And it will give longer life for battery. You can also use blocking diode instead of charge controller. But there are some negative effects of blocking diodes. If you do not use charge controller and just use a blocking diode, so battery can be over charged and damaged. If you is using big solar panel system so it is better to have an advanced charge controller. That gives you complete statistics of how much volt and ampere it have charged battery. Advanced charge controllers also show you how much ampere is on batteries. Charge controllers can automatic disconnect battery if it is going to be empty.
For bigger systems like tubewell or water pumping they are used high voltage charge controllers, called MPPT(Maximum Power Point Tracker) charge controllers. MPPT charge controller can convert dc-dc voltage. Example used in 24, 38, 48 volt systems. MPPT charge controllers are used with higher power panels like 135 watt and higher panels.