Say the curve is r = a + sin(theta) = f(theta), say.
Now, y = r.sin(theta) = f(theta).sin(theta) and similarly x = f(theta).cos(theta)
Now, dy/d(theta) = f'(theta).sin(theta) + f(theta).cos(theta) = cos(theta).sin(theta) + (a + sin(theta)).cos(theta) = a.cos(theta) + sin(2*theta).
Also, dx/d(theta) = f'(theta).cos(theta) - f(theta).sin(theta) = cos(theta).cos(theta) - (a + sin(theta)).sin(theta) = cos(2*theta) - a.sin(theta).
Now, dy/dx = (dy/d(theta))/(dx/d(theta)) = [a.cos(theta) + sin(2*theta)]/[cos(2*theta) - a.sin(theta)].
At theta = -pi/2, we see that dy/dx is perfectly well-defined if a =/= 1, as it equals [a*0 + 0]/[-1 + a] = 0. So we have a horizontal slope when theta = pi/2 for a =/= 1.
If a = 1, the denominator is 0 at theta = -pi/2 however and we need further investigation, and it turns out we end up with a cusp.
To find where dy/dx may be undefined for arbitrary given a, we can set the denominator of dy/dx to 0 and try and solve for sin(theta) (it'll be a quadratic in sin(theta)) and hence theta.
If you solve the quadratic we get, the solutions should be
sin(theta) = [-a +/- sqrt(a^2 + 8)]/4. For real solutions, we'd need the RHS to be between -1 and 1. You can investigate for which a this will happen. You'll find that at least one of these will always be between -1 and 1 for any real a. These'll usually give places where the tangents are vertical. You can try finding for which a it is possible to have both numerator and denominator of dy/dx be 0 simultaneously. You should find this can only happen if a = +/- 1. For a cusp, we'd need both numerator and denominator to be 0 at a point theta0, and at least one of these (x'(theta) and y'(theta)) should change sign here, which is what happens at -pi/2 for a = +/- 1 cases.