OK, this is specifically regarding Cisco Catalyst 2900s, 4500s, and 6500s. I've always matched my interface VLANs to my VLANs.
Lets say I have VLAN 10 on a 2900, and all hosts on it have IP addresses on 192.168.10.0/24. I'd create a VLAN 10 on my 4500 and an Interface VLAN 10 on my 4500, and put my gateway 192.168.10.1 (or whatever) on Interface VLAN 10. Between my 2900 and 4500, i'd trunk VLAN 10 and others. Then all hosts on 192.168.10.0/24 would be able to get to 192.168.10.1 as their gateway.
I just looked at a config for a VLAN I have, and the INT Vlan number containing the gateway does not match the VLAN number.
Example [PC 192.168.20.5/GW 192.168.20.1]<----->[VAL 20 all ports 2900]VLAN20--trunk---VLAN20[int vlan 5 (192.168.20.1)]
Even though the gateway is on an INT Vlan that doesn't match the VLAN, it is still working. I thought the INT VLan# meant that the SVI would be a part of the VLAN#. So, does INT Vlan# not have to match VLAN number?