Designing a city map is a layered process so here are your layers (or steps).
Step 1: Define the site
Define the physical location. The basis of which is a topographical map. This should include elevation, rivers/streams/lakes (I could have just said bodies of water I suppose...), and what the ground is like in the various areas (meaning rocky, or sandy or arable soil etc etc etc, and don't forget forests. There is more to this (any physical characteristic you can think of really)
Step 2: Integrating it into the world. Its a simple matter (relatively speaking) to define a single location, making that location fit into the grander world is more complex. You don't want to define a single location without thinking about how it fits into the greater world, thinking about this up front can be helpful. This will help you define what type of city you are creating. Is it a crossroads that becomes a trading center, is it near a border and did it spawn from a central border fort? More specific to designing the city it will help you make sense of where roads should go. In many cases you have roads (or at least paths) long before you have a city.
Example: using your brief idea mentioned in the OP think about this
- You build a city with a river that flows south to north and then empties into a sea that defines the norther border of the city.
- You add a central road/thoroughfare that follows the river N to S
- You later decide that the cities of this region are all coastal (meaning they would all be aligned to the east or west of the city, in which case having the main road run N to S makes no sense.
This is a really simple situation but thinking about how a city fits into the world around you helps define what you are looking to create and provides logical consistency later without forcing you down certain paths you may not like.
Step 3: City Details
How big is your city (geography and population) how densely populated is the town? To get an idea on how big you want it look at this list: Cities by population density. That should help you define size vs population. Once you have that you can define what type of city it is. Was it originally a fort? Is it a walled city on the plains? Is it a mountain mining town? Hidden forest retreat...you get the idea, this list could go on forever. Other things to think about:
- Available building materials (this can dictate how your city looks) a desert city is unlikely to have a lot of wooden buildings for example.
- Natural resources, what does the city produce and what does it need. Generally in fantasy settings cities have quarters (or at least some breakdown of sections) a major manufactured good could help dictate these.
- Keep in mind your topography, for example a city that spawned from a fort would generally be on a hill or some other strategic location
At this point you have geography, roads, city flavor and style, relevant sections of town and you can simply fill in the details at your leisure. Keep in mind older cities tend to follow geography while newer ones tend to grid things out.