It depends how you define cities.
The strategi dataset contains a cities layer. If you wish to have more detail, and include large towns the meridienMeridian 2 dataset contains an urban area layer that would be a good starting point.
You could also use the Boundary Line Data from the same source that would give you the administrative Boundary associated with particular cities.