How to get node's title and send list of it to mail I am about to send an email to website admin.

First of all, there will be a function to get list of node's title that city field equal to 'barcelona'.

After that, the list will be send to website admin once every day using e-mail.

Any idea on how to do this with Rules or custom module?
You need to create custom module and implement hook_cron().

See:

https://drupal.org/developing/modules

Also check this post:
 How to create a task which run at cron time and send emails to users?

function get_node_titles() {
    $result = db_query('SELECT n.title FROM {node} n');

    $titles = array();
    foreach($result as $item) {
        $titles[]  = $item-&gt;title;
    }

    return $titles;
}