Working from the inside out, we use the DATEDIF function to calculate how many complete years are between the the original anniversary date and the "as of" date, where the as of date is any date after the anniversary date:
Note: in this case, we are arbitrarily fixing the as of date as June 1, 2017 in all examples.
Because we are interested in the *next* anniversary date, we add 1 to the DATEDIF result, then multiply by 12 to convert to years to months.
Next, the month value goes into the EDATE function, with the original date from column B. The EDATE function rolls the original date forward by the number of months given in the previous step which creates the next upcoming anniversary date.
As of today
To calculate the next anniversary as of today, use the TODAY() function for the as of date: