Well after you iterate through the second .csv in your inner loop you reach the end and no new lines can be read again.

You should be using something like this where the second file is going to seek(0) to go back to the beginning after the inner loop breaks. Also, it is advisable to use with statements to open files since they make sure the file is closed when its body has executed:

with open("denver_source.csv") as cf1, open("denver_mine.csv") as cf2:
source = csv.reader(cf1)
mine = csv.reader(cf2)
for line in source:
for xline in mine:
if line[0] in xline:
output[line[0]] = xline
break
cf2.seek(0)

The noteworthy thing here is that you call seek(0) on the file you supply to csv.reader and not the instance of csv.reader. That is, you call cf2.seek(0) and not mine.seek(0); the changes will be reflected on the reader instance and you'll be able to re-iterate as needed.

Of course, you could re-factor this to use the with for every iteration of line in source instead of seek(0); that's really down to personal preference.