If I understand correctly, you want a varying-intercept model by town, i.e., a hierarchical model? If that's right, just use lme4 package.
Here is an example. Assuming you have in your data frame a variable (factor) called town, and that your data frame is called "fish", just run:
library(lme4)
library(arm) # to use the function display, much better than summary
nest.reg <- glmer(decision ~ age + education + children + (1|town), family = binomial, data = fish)
coef(nest.reg) # this will give the estimated coeficients by town (in this case, only the intercepts will vary).
fixef(nest.reg) # this will give the model averaging over all towns.
ranef(nest.reg) # the errors (specificity) at the town level. If you sum fixef with ranef you will get coef results
Finnaly, it's important to compare the estimated within and between town variation
display(nest.reg) # this will show you, among other things, the estimated residual variatio at the town and individual level. It's the error terms by town and by individual (Residual). The ratio between them will tell you how much information the is between town and within each town.
Take a look at the last edition of Gelman and Hill's book for more information about multilevel regression using lme4.
Ps.: It's possible to include varying-slope by town as well. If that's what you need, just ask in the comments.