We focus on the detection of communities in multi-scale networks, namely networks made of different levels of organization and in which modules exist at different scales. It is first shown that methods based on modularity are not appropriate to uncover modules in empirical networks, mainly because modularity optimization has an intrinsic bias towards partitions having a characteristic number of modules which might not be compatible with the modular organization of the system. We argue for the use of more flexible quality functions incorporating a resolution parameter that allows us to reveal the natural scales of the system. Different types of multi-resolution quality functions are described and unified by looking at the partitioning problem from a dynamical viewpoint. Finally, significant values of the resolution parameter are selected by using complementary measures of robustness of the uncovered partitions. The methods are illustrated on a benchmark and an empirical network. Comment: 8 pages, 3 figures