The system is a combination of both. The controller will have a view of the weather radar for the area, and can route traffic around bad areas. They will at least advise the pilots of the bad weather that they can see, and can offer the pilots a deviation or let them know what previous flights have done.
However, the pilots have a better view with the weather radar on their plane, and the pilots have the ultimate decision as to what they will do. The pilots may see a weather return they don't like and ask for deviation around it. Even if ATC denies the request, the pilots are ultimately responsible for the safety of the flight, and should do what they feel is best, even if that means deviating without permission.
There is an interesting article here that is a bit dated, but should still apply to the general idea of how ATC handles bad weather.