Flat vs smooth shading in photo-realism and glossy shaders I understand flat shading is a big no-no for parts of the geometry that curve, so transition between face do not show. I also understand the difference in the viewport: flat shading gives a single color to a whole face whereas smooth shading interpolates across a single face or many faces depending on lighting. But when it comes to parts of the geometry that ARE actually flat (e.g. table top) and have a cycles shader on them (vs the single viewport color), I find it really difficult to tell that the best option is (or at least why). See the comparison in my current project (low sampling):



The area circled in pink must be smooth: it is curvy and otherwise faces will show. However, area in green and blue have a completely flat geometry. The green area seems more realistic when flat shaded (ignoring the noise due to low sampling), which makes sense, but the blue area looks better smooth, for a reason I can't put my finger on. I know that there are never any 100% true flat surfaces in reality, but surely everything cannot be smooth shaded, because of what can be seen in the green area (makes a rectangular prism look like a cylinder). And the blue area is just fine smooth shaded, and the angle is 90d too! Why is that?
The answer given by @R.M is the way to go to achieve a photo-realistic result, but it requires to modify your mesh.
If you can't afford to slightly change your geometry, another solution exists: auto-smoothing.

Set your whole mesh as smooth shaded and go to the properties panel. 
Under the category object data / normals you will find the option Auto Smooth. Turn it on and tweak the angle to your liking. This will automatically set the faces above this angle threshold as flat and the others as smooth.



Here is a simple example with a cylinder:



Quick render with smooth shading, notice the unwanted behaviour near the top and bottom faces.



Quick render with auto smooth activated. The top and bottom faces are flat shaded while the other are smoothed.