I dont own an E90 but I've driven my friend's E90 M3 a few times. The E46 will DEFINITEY cost more in maintenance. Since i bought mine i've had to replace the differential, two struts, rear springs, tires every few months, valve adjustment, and more stuff im probably forgetting. Its also finnicky when you first start it up especially in the cold. The E90 feels more luxurious and has newer technology. Its also noticeably faster (obviously). It feels better constructed. Sounds better.
The E46 feels more raw. Its more fun. Even with SMG it feels more connected than the E90 does. I feel more in tune with what its doing. If you have track aspirations, get the E46. It may not be faster but is definitely more fun.