My dictionary translates them both as "cheek".
Can they be used more or less interchangeably?
'볼' and '뺨' are not always interchangeable and their usages are different sometimes. According to Naver Korean dictionary, '볼' means:
명사 (Noun)
뺨의 한복판. Center of one's cheek.
뺨의 가운데를 이루고 있는 살집. Soft flesh in the center of one's cheek.
They are both translated as 'cheek' in English because there is no corresponding word for '볼' in English. If you see example sentences, you can't always use '뺨' in place of '볼' as in:
볼을 만지다. (Subject) Touches the center of a cheek.
뺨을 만지다. (Subject) Touches a cheek.
뺨을 때리다. (Subject) Slaps (someone) in the face.
?볼을 때리다. It is not idiomatic.
볼을 꼬집다. (Subject) Pinches one's center of a cheek.
뺨을 꼬집다. It makes sense, but less idiomatic than "볼을 꼬집다".
There is a very famous proverb in Korean "종로에서 뺨 맞고 한강에서 눈 흘긴다" which literally translates to "Someone who got slapped in the face at Jongno (name of a district in Seoul) glares at somebody else at the Han river". No Korean will use '볼 맞고' in place of '뺨 맞고' in the proverb.
To my understanding, these two words for cheek can be used interchangeably. They have the exact same meaning.
Originally I thought the difference was that 볼 was derived from Chinese, but this is not the case.
Online it looks like some Koreans argue that 뺨 is to be used when speaking of the cheek in a two dimensional sense, as in "Her cheeks turned red." They then argue that 볼 is to be used when speaking of the cheeks in a three dimensional sense, as in "My cheeks puffed out in rage." Personally, I have never seen someone actually distinguish the two words this way.