It sounds like you are doing the right thing taking them back to bed (at 8pm). In the middle of the night, you have to do the same thing. Tips: Don't get into a conversation w/them. I've heard you're not supposed to say anything after the second time they come out, just take them back to bed (but it's hard for me to keep my mouth shut, so we always said "It's bed time. Good night" as we walked her back to her room.
If you feel your child is old enough to understand, try this: decide what your child's currency is and take something away if he/she gets out of bed. Give a warning first. For my daughter, it is usually stuffed animals. After she comes out of bed a second time, we say "If you come out again (for no reason), we are taking "teddy bear". There were nights when we had to take 4 or 5 animals. Sometimes she got upset and there were tears, but she started staying in bed. :) (Tip: Don't take the #1 "lovey" if have other currency that will get the point across.)
A good night time routine helps too. If we rush bed time and don't give enough one-on-one time for quiet play or bed time stories, she seems to come out more. If all goes well before bed time, I think she's more content.
I hope this helps.
For safety, we put baby gates on our child's room. That way, she could get out of bed and play in her room (early in the morning), but she couldn't get out/into any unsafe things in the house. We still used the baby monitor to hear her and know she was okay/playing.