Flight controllers is a significant circuit in a quadcopter. Its function is to direct the RPM of each motor in response to input. A command from the pilot for the multi-rotor to move forward is fed into the flight controller, which determines how to manipulate the motors accordingly.
Different Flight controllers have different functionality. Some are very simple and do not supplement sensors for these operations. However, you'll find much of these, do use them for more accurate navigation and flight. It's not one- but many sensors together for best possible flight. For example the Parrot drone uses 3 axis accelerometer, gyroscope, magnetometer and one ultrasound sensor.
Personally, I would recommend buying a flight controller. If this is your first project with a quadcopter, you probably should focus on its navigation algorithms. You can however try making your own when you gain experience with quads.
Which one should you use?
It really depends upon you. If you wish to employ all the above sensors, you'll need one matching those specs. Else you can search for an alternative.