This depends somewhat on what map projection you are using, and what labels you want to produce.
Cartopy has poor support for tick marks and labels generally, but you have a few options.
* You can supply the draw_labels argument to ax.gridlines(). Labels are only possible for a limited set of projections, and it will put labels on all sides of the plot. It is quite inflexible at the moment (needs dev attention) so if you don't like the result it is hard to change.
* You can use the set_xticks() and set_yticks() method of the axes. The cartopy versions of these accept a crs argument (see
http://www.scitools.org.uk/cartopy/docs/latest/matplotlib/geoaxes.html#cartopy.mpl.geoaxes.GeoAxes.set_xticks) but again only support a limited number of projections. After you have located the ticks you will likely need to format them. The ticks are always drawn in projection coordinates, so if you want to label lat/lon on a projection that isn't just PlateCarree you will have some work to do. If you are using PlateCarre with a central longitude of 0 to plot then you can use the tick formatters defined in cartopy.mpl.gridliner (LATITUDE_FORMATTER and LONGITUDE_FORMATTER). If you have a different projection or even a different central longitude you will likely be out of luck and you'll have to set the labels manually.
A small bit of good news: there is an open PR to cartopy that provides projection aware tick formatters. These are limited to labelling lat/lon values but they will get the values right no matter what central longitude you have should work for all rectangular projections.
Labelling is an area where cartopy really falls down and something needs to be done about it before cartopy can really take off, so I'm glad you brought this up!