I agree with both SLott and JB King; I'd also like to add a couple:
Negotiation: working out trade-offs is one thing, justifying it (politically) can be quite another. Similar to leadership in someways, but definitely a skill in it's own right.
Communication is the other one that goes hand-in-hand with that, leadership, etc.
Breadth: depending on the context of where you work, having a broad range of knowledge is useful even if you don't know the detail - as long as you know it's there and can refer to it when you need it.
Design Patterns: Interestingly, a lot of design patterns that you'd use at the code / class / method level also translate to higher levels of system design as well. Martin Fowler's Patterns of Enterprise Architecture is a good place to start - but there are many other good books and resources as well.
Reference Architectures and Frameworks: I found TOGAF helpful; even though it's aimed at the Enterprise Architecture level it has a lot which translates well down into the solution level. Knowing some relevant reference architectures is also a really good idea.
Other Architecture domains: get a feel for what some other specific architectural domain do,such as: data architecture and business architecture. Having a good grasp of these is helpful when your transitioning into solution architecture.