Because guests can continually go back to the calendar and see there IS availability and they may just think their first booking didn't go thru, this is an instance where a healthy spine is in order. No little white lies about 'just remembering them' that I tell to guests who think I remember everyone.
If you've done me wrong, I have not forgotten! So, call the person and explain why you cannot take them again. 'You smoked in your room, causing distress to other guests. And you continued to do so, even after you knew you were causing distress and knew you were going against the STATE policy of no smoking inside public accommodations.' (OK, now you know who's on my DNB list!)
'Your charming child ran amok in the dining room, causing breakfast to be dumped in another guest's lap. Your child may have outgrown such behavior, but I'm not over it yet.'
If it was years ago, I might give them another chance. We have one guest who comes every year, is a complete pain, but we've grown accustomed to him. He doesn't wind us up anymore.
Damages, smoking, rude behavior, whatever the reason, let them know and refer them to a hotel where they are staffed to handle these things.
If it's a personality clash, say you didn't find that there was a good match during the previous visit and you felt they were uncomfortable. 'Here's the name of another B&B (or hotel) that I think will better match your expectations. We want you to really enjoy your stay in our town.' (We just don't want you doing it at our expense!)
Plenty of guests who have not fared well with other B&B's have done fine here and vice versa.