They sound very different to me, and I've had a hard time saying which one is more important.
You could be an amazing software maintainer, but a very bad programmer yourself. Some people are amazing at debugging code, finding their way through it, fixing it, and slightly improving it. They're often compared to janitors, but it's a disservice: they can have true knowledge and know-how to get things to a better state.
But they can still be awfully bad at writing new code and at designing and implementing algorithms. They can have an understanding of why things are generally better one way or another, and they can even understand after the fact the benefits of one design over another. But they have a hard time coming up with one themselves. They lack a deep understand of this logical and problem-solving mindset.
They're both important in my mind. You don't want only hackers who can come up with amazing solutions, but produce unmaintainable code for the next generations of eyeballs going to look at your codebase. It can be fine for prototyping and short-lived projects, but on a larger scale that can only fly for so long.
So the first group is also essential. But they wouldn't be able to design great software with the second group. It's quite symbiotic (and it's best when the qualities are indeed in the same developer). I'd guess if you see this as a chicken and egg problem, I'd have to admit that the logical kind matters a little bit more, for historical reasons, as they had to exist first to make head way. But does that mean they're more important in a software shop? I don't think so. You can produce great and successful software by plumbing things together and not inventing much.