The concept of smart cities, which aim to enhance the quality of urban life through innovative technologies and policies, has gained significant momentum in recent years. As we approach the era of next-generation smart cities, it becomes crucial to explore the key enabling technologies that will shape their development. This work reviews the leading technologies driving the future of smart cities. The work begins by introducing the main requirements of different smart city applications; then, the enabling technologies are presented. This work highlights the transformative potential of the Internet of things (IoT) to facilitate data collection and analysis to improve urban infrastructure and services. As a complementary technology, distributed edge computing brings computational power closer to devices, reducing the reliance on centralized data centers. Another key technology is virtualization, which optimizes resource utilization, enabling multiple virtual environments to run efficiently on shared hardware. Software-defined networking (SDN) emerges as a pivotal technology that brings flexibility and scalability to smart city networks, allowing for dynamic network management and resource allocation. Artificial intelligence (AI) is another approach for managing smart cities by enabling predictive analytics, automation, and smart decision making based on vast amounts of data. Lastly, the blockchain is introduced as a promising approach for smart cities to achieve the required security. The review concludes by identifying potential research directions to address the challenges and complexities brought about by integrating these key enabling technologies.