Step 1: Check it's not being sent to an old email you no longer use. If so, delete email account.
Step 2: Do a reverse lookup on the IP number to find out which ISP owns the block that includes the number it's coming from. File a complaint with the relevant ISP, telling them that you are being spammed by one of their customers. You will need to email them copies of the full headers and content of the messages you have received. This is unlikely to get it stopped at a first complaint. Most likely they will warn their customer not to spam, it normally takes 2 or 3 attempts to get the account closed.
Step 3: Contact your own ISP and tell them to block the server from which the spam is coming. They can do this if you give them the ISP name having already looked up the IP block. So far as I know, they cannot block individual IP numbers, only the server as a whole. Depending on who it is, you may not want to do that.
If you're being dictionary spammed at a catchall email address and receiving 50 to 100 emails an hour, it's not a choice. I had to do this twice in my life so far, the second time only last week, it was an old email address on a domain I no longer owned. I was willing to re-register the domain just to stop the spam, but someone else had already bought it and the Domain Name Registrar had not switched off email forwarding. I did a Whois lookup on the the domain name to find out where it was registered these days, then picked up the phone to their tech department. They were very helpful, lots of apologies and stopped it instantly, but it took another 4 hours to propogate thru the net. After that, the flooding stopped, a few trickled through the next day, but that was then end of it.
Catchall email addresses contribute to the problem of dictionary spamming.
Step 4: ignore all of the above and click delete....
Hope this helps