It's one thing to put down some blocks in "Minecraft," but building an entire city will take plenty of innovation on your part. Above all, you'll need to think big; cities are large enough to contain many buildings and stretches of land. Although you may not necessarily need to build too much if you're not on a multiplayer server, a true "Minecraft" city will need room to grow.
Gathering Required Materials
Before getting started, gathering the materials you'll need for the building helps make your life easier; although it's obviously impossible to know everything you will need without complex advanced planning, you should be able to come up with a general list depending on what you know you'll want. For example, if you're aiming for brick houses, you'll need plenty of clay and a place to smelt it. You'll also need a stockpile of tools for gathering materials because they'll undoubtedly break in the process.
Designing Different Zones
If you're building on a multiplayer server, having a residential area with several homes is a good starting point. Unless aesthetics are important, you don't necessarily need more than one house in a single-player world. A commercial zone can have tall, glass office skyscrapers whereas a rural zone might have farms and animals scattered about. If you're near the ocean, try making a fishery or a dock for some boats.
Making and Connecting Multiple Cities
If you have multiple zones spread out or want to make more than one city, it's probably a good idea to have an easy way to travel between them. You can make roads for aesthetics, but you'll want to make powered railroads for efficiency. Try having both; you can add stone to the ground to make roads and sidewalks between cities for looks while digging an underground minecart subway for true travel.
Just because you can make a city doesn't mean it has to be like the one you live in. With a little ingenuity, you can create themed cities worth taking screenshots over. For example, building a glass dome over your building and flooding the outside world with water can create an atmosphere like Atlantis or Rapture from the "BioShock" series. Instead of sticking to the ground, build high into the clouds. Just don't use sand or gravel; these blocks respond to gravity and will fall on whatever lies beneath them.