This question already has an answer here:
I'm trying to get a nice rounded end to a cylinder. When I add a subsurface modifier plus an edge loop, the edge looks 'choppy':
Is there a way I can get this smooth? I've done this previously, but this was by adding a sphere at the ends. It would be nice to not have to add extra objects if possible.