IGMP Profile allows IGMP access-control at Layer 2. It allows you to block or deny specified multicast groups. You create the profile and then you can apply it to one or more interfaces. Just like access-lists, the default action is deny.

If you specify permit, then the default action is to deny. Seeing a configuration explains it better.

SW1(config)# ip igmp profile 1
SW1(config-igmp-profile)# permit
SW1(config-igmp-profile)# range 239.0.0.0
SW1(config-igmp-profile)# range 237.0.0.0 238.0.0.0
SW1(config-igmp-profile)# exit
SW1(config)# interface GigabitEthernet0/1
SW1(config-if)# ip igmp filter 1
SW1(config-if)# exit

With this example, the specified groups are allowed and all others are implicitly denied. If the permit statement were changed to a deny statement, then those ranged would be denied and all others permitted.

Note that we create the profile, but then to apply the profile we use the ip igmp filter interface command.

If this were instead a Layer 3 port, we would use an access-list for the same purpose.

SW1(config)# access-list 1 permit 239.0.0.0
SW1(config)# interface vlan 8
SW1(config-if)# ip igmp access-group 1
SW1(config-if)# exit