I've enjoyed Fillomino for a couple years now. It's a region filling puzzle situated on a grid. The number in each box represents the size of the polyomino it belongs to, and polyominos of the same size cannot touch (except diagonally). Sample puzzle:
Sample credit: Nikoli
Trying my hand at creating them, however, isn't going so well. I can easily create something for an unreasonably small grid, but that isn't fun or challenging. For example,
2.. (completed) 221
is a simple 3x3 puzzle with one distinct answer. The problem is that when I try to expand to a larger grid, the possibilities are overwhelming. It's very easy to lose track of why I put what where and what has already been accounted for.
My first instinct was to start with a "completed" grid and remove numbers until it was sparse enough to seem difficult, but I quickly found that deciding which ones to remove was hit-or-miss.
Looking around the web, there are several sources explaining how to solve these types of puzzles, but basically nothing on creating them.
I have an app on my phone that contains literally thousands of puzzles (of varying difficulty and size), so I'm inclined to believe that they can be easily computer generated, but I haven't seen an outline of an algorithm (by hand or code).