(a * mn/d, b * mn / d) = (0, 0)
a * mn/d = a(n/d)m ... (a multiple of m)
b * mn/d = a(m/d)n ... (a multiple of n)
Thus, the first and second coordinates are equivalent to 0 under Z_m and Z_n respectively. Now, it's clear that, if d > 1, then mn/d < mn, and so no element can generate the entire group (since the order of all elements is at most mn/d). So, Z_m x Z_n cyclic ===> (m, n) = 1.
Suppose (m, n) = 1. Consider the element (1, 1). I claim that it is the generator. We know that (1, 1)^(mn) = (0, 0), but we have to check that no smaller index will do the trick. Suppose:
(1, 1)^k = (0, 0)
Then (k, k) = (0, 0) ===> k = 0 (mod m) and k = 0 (mod n) ===> k is a common multiple of m and n. Since (m, n) = 1, we know that the least common multiple of m and n is mn. Thus, mn is the smallest such k, and so (1, 1) generates the group, i.e. the group is cyclic.
Now, it is a well-known theorem that all cyclic groups of any given order are isomorphic. We know that |z_m x Z_n| = mn = |Z_mn|, and both are cyclic, so they are isomorphic.