Create a depression in a circle
Start with a plane and add loops around the general square area that will contain the button.
Add additional loops to subdivide the square.  These loops will provide additional vertices for our circular button.
Use Inset Polygon to create a smaller square area.  Use LoopTools Circle to turn the insetted quads into a perfect circle.
Move the central vertex of the circle down in the Z-axis.  This will create the depression.
Add definition by creating further edge loops around the circle.
Add a Subdivision Surface modifier and your done.




The resulting topology is all quads and neatly subdivides.