The salesman is wrong, 225/45R17 tires will not fit on your 19" m wheels. If you want a tire of that size, you will need to get 17" wheels (which will probably fit over the brakes on the car). This will cost more (and be uglier) than just getting some 19" winter rubber.
You can go with a smaller wheel if you want, but I don't think it's really necessary. After all, you do have xdrive on the car. You could even go with an all-season tire (and avoid switching rubber twice a year), though dedicated summer and winter rubber is preferred. If you do get a dedicated set of winter wheels, go for an 18" wheel; 17" looks like crap.
19" snow tires are fine. I have 19x9.5 wheels on my M3 in the winter. Snow tire choices in 19" are limited, but you shouldn't have any trouble finding them. I assume the car has the 403M 19" wheels, correct? If so, these wheels measure 19x8 front and 19x8.5 rear. That translates to 225/40R19 front and 255/35R19 rear. You can get Blizzak LM-60 (H-rated) or Pirelli Winter Sottozero Serie II Run Flat (H-rated) from tirerack. Make sure you get a matched set (don't mix different tire models).