Is it possible to set order in which inherited tables a scanned in postgresql?
I ...  want to select latest row with city_id = 125.

Bold emphasis mine. Your query does not match the declared objective. Should be something like:
SELECT * FROM measurement WHERE city_id = 125 ORDER BY logdate DESC LIMIT  1;
Which should make Postgres scan the latest partition first.
Assuming logdate is defined NOT NULL. Else use ORDER BY logdate DESC NULLS LAST:

PostgreSQL sort by datetime asc, null first?

If that doesn't work for some reason (your setup and Postgres version are undisclosed), you can also spell it out:
(SELECT * FROM  measurement_y2006m03 WHERE city_id = 125 ORDER BY logdate DESC)
UNION ALL
(SELECT * FROM  measurement_y2006m02 WHERE city_id = 125 ORDER BY logdate DESC)
UNION ALL
(SELECT * FROM  measurement_y2006m01 WHERE city_id = 125 ORDER BY logdate DESC)
LIMIT  1;

Parentheses are required to make the ORDER BY apply to each SELECT instead of the whole query. Maybe you get an even better query plan by adding LIMIT 1 to each SELECT additionally. You'll have to test.
Postgres will stop scanning as soon as it has found the first row. Related answers with more explanation:

Way to try multiple SELECTs till a result is available?
Use column values in ORDER BY and LIMIT clauses

Index
For best performance you would have composite indices on (city_id, logdate DESC) on all child tables (or at least the latest ones).