E46 is an older car, yes, but you can find some with low mileage that are still cheaper than a new 335i.
If it's about money, buy the M3. You'll be glad you did. Sure, you might have more maintenance costs with an older vehicle, however you can pay for them as they come along. And it's always IF they come along. Take care of your car and it'll take care of you. Also, you can buy the new car and see the value depreciate a good 5 grand once you drive it the 10 miles back to your house
If it's about performace, the new 335i might be the way to go. They are nice...
Personally I am looking at a used 03-04 E46 myself. Being able to modify the car is a big factor in what I am looking for. And I don't have the money to buy a new 09 M3...